olaf neophyte and de.po updates, valgrind tweaks, delete green lady, inkscape dpi=96
[goodguy/history.git] / cinelerra-5.1 / guicast / bclistbox.h
index e0654105acf39b007dae887f99372a3d8723c5a9..6bdd2c041a35e0d202310a27b9c199d3bc7e864d 100644 (file)
@@ -27,7 +27,7 @@
 #include "bcscrollbar.h"
 #include "bcsubwindow.h"
 #include "bctoggle.h"
-#include "colors.h"
+#include "bccolors.h"
 
 #define BCPOPUPLISTBOX_W 25
 #define BCPOPUPLISTBOX_H 25
@@ -123,6 +123,8 @@ public:
        virtual int sort_order_event() { return 0; };
 // Column moved
        virtual int move_column_event() { return 0; };
+// item highlight changed
+       virtual int mouse_over_event(int no) { return 0; }
 
        int enable();
        int disable();
@@ -189,6 +191,12 @@ public:
        int activate(int x, int y, int w=-1, int h=-1);
        int deactivate();
        int is_active();
+       int expander_active();
+
+// get item no at current cursor position
+       int get_cursor_item_no();
+// get top data item no, and item at current cursor position
+       int get_cursor_data_item_no(BC_ListBoxItem **item_return=0);
 
        int translation_event();
        int repeat_event(int64_t duration);
@@ -197,7 +205,9 @@ public:
 // Must be called in the constructor.
        void set_use_button(int value);
        void set_is_suggestions(int value);
-
+       void set_scroll_repeat();
+       void unset_scroll_repeat();
+       int scroll_repeat;
 
 // change the contents
        int update(ArrayList<BC_ListBoxItem*> *data,
@@ -314,6 +324,12 @@ public:
                int indent /* = 0 */,
                int master_column);
 
+       int get_icon_x(BC_ListBoxItem *item);
+       int get_icon_y(BC_ListBoxItem *item);
+       int get_icon_w(BC_ListBoxItem *item);
+       int get_icon_h(BC_ListBoxItem *item);
+       int get_text_w(BC_ListBoxItem *item);
+       int get_text_h(BC_ListBoxItem *item);
        int get_item_x(BC_ListBoxItem *item);
        int get_item_y(BC_ListBoxItem *item);
        int get_item_w(BC_ListBoxItem *item);
@@ -321,6 +337,7 @@ public:
 
 // Draw the list items
        int draw_items(int flash, int bg_draw=0);
+       int is_highlighted();
 
 private:
        void delete_columns();
@@ -401,10 +418,6 @@ private:
        int get_items_height(ArrayList<BC_ListBoxItem*> *data,
                int columns,
                int *result = 0);
-       int get_icon_w(BC_ListBoxItem *item);
-       int get_icon_h(BC_ListBoxItem *item);
-       int get_text_w(BC_ListBoxItem *item);
-       int get_text_h(BC_ListBoxItem *item);
        int get_baseline(BC_ListBoxItem *item);
        int get_item_highlight(ArrayList<BC_ListBoxItem*> *data, int column, int item);
        int get_item_color(ArrayList<BC_ListBoxItem*> *data, int column, int item);
@@ -432,7 +445,8 @@ private:
 // Points *item_return to the first item in the row or 0 if no item was found.
 // if it's nonzero.  Returns -1 if no item was found.  Clamps the y coordinate
 // only if the current operation is not SELECT, so scrolling is possible.
-// expanded - 1 if items in this table should be tested for cursor coverage
+// expanded = 1 if items in this table should be tested for cursor coverage
+// expanded = -1 returns only the top level master column index/item
        int get_cursor_item(ArrayList<BC_ListBoxItem*> *data,
                int cursor_x,
                int cursor_y,
@@ -505,7 +519,7 @@ private:
 // Size of the popup if there is one
        char **column_titles;
        int *column_width;
-       int default_column_width[1];
+       int default_column_width[32];
        int columns;
        int master_column;
        int search_column;
@@ -586,6 +600,7 @@ private:
 // More state variables
        int button_highlighted;
        int list_highlighted;
+       int packed_icons;
 // item cursor is over.  May not exist in tables.
 // Must be an index since this is needed to change the database.
        int highlighted_item;