* got MIDI clock working really smoothly (29 frames until sync, ardour transport...
[ardour.git] / libs / clearlooks / widget-information.h
1
2 #ifndef WIDGET_INFORMATION_H
3 #define WIDGET_INFORMATION_H
4
5 #include "general-support.h"
6 #include <glib.h>
7 #include <gtk/gtkwidget.h>
8
9 typedef enum {
10         GE_HINT_TREEVIEW,
11         GE_HINT_TREEVIEW_HEADER,
12         GE_HINT_STATUSBAR,
13         GE_HINT_COMBOBOX_ENTRY,
14         GE_HINT_SPINBUTTON,
15         GE_HINT_SCALE,
16         GE_HINT_VSCALE,
17         GE_HINT_HSCALE,
18         GE_HINT_SCROLLBAR,
19         GE_HINT_VSCROLLBAR,
20         GE_HINT_HSCROLLBAR,
21         GE_HINT_PROGRESSBAR,
22         GE_HINT_MENUBAR,
23         GE_HINT_COUNT
24 } GEHint;
25
26 /* ALL OF THE FOLLOWING SHOULD DIE ...
27  * instead the hint system will be used, and a huge switch ;-) */
28
29 /* Object Type Lookups/Macros
30    
31    Based on/modified from functions in
32    Smooth-Engine.
33 */ 
34 #define GE_IS_WIDGET(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkWidget"))
35 #define GE_IS_CONTAINER(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkContainer"))
36 #define GE_IS_BIN(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkBin"))
37
38 #define GE_IS_ARROW(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkArrow"))
39
40 #define GE_IS_SEPARATOR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkSeparator"))
41 #define GE_IS_VSEPARATOR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkVSeparator"))
42 #define GE_IS_HSEPARATOR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkHSeparator"))
43  
44 #define GE_IS_HANDLE_BOX(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkHandleBox"))
45 #define GE_IS_HANDLE_BOX_ITEM(object) ((object) && GE_IS_HANDLE_BOX(object->parent))
46 #define GE_IS_BONOBO_DOCK_ITEM(object) ((object) && ge_object_is_a ((GObject*)(object), "BonoboDockItem"))
47 #define GE_IS_BONOBO_DOCK_ITEM_GRIP(object) ((object) && ge_object_is_a ((GObject*)(object), "BonoboDockItemGrip"))
48 #define GE_IS_BONOBO_TOOLBAR(object) ((object) && ge_object_is_a ((GObject*)(object), "BonoboUIToolbar"))
49 #define GE_IS_EGG_TOOLBAR(object) ((object) && ge_object_is_a ((GObject*)(object), "Toolbar"))
50 #define GE_IS_TOOLBAR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkToolbar"))
51 #define GE_IS_PANEL_WIDGET(object) ((object) && (ge_object_is_a ((GObject*)(object), "PanelWidget") || ge_object_is_a ((GObject*)(object), "PanelApplet")))
52
53 #define GE_IS_COMBO_BOX_ENTRY(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkComboBoxEntry"))
54 #define GE_IS_COMBO_BOX(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkComboBox"))
55 #define GE_IS_COMBO(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkCombo"))
56 #define GE_IS_OPTION_MENU(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkOptionMenu"))
57  
58 #define GE_IS_TOGGLE_BUTTON(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkToggleButton"))
59 #define GE_IS_CHECK_BUTTON(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkCheckButton"))
60 #define GE_IS_SPIN_BUTTON(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkSpinButton"))
61  
62 #define GE_IS_STATUSBAR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkStatusbar"))
63 #define GE_IS_PROGRESS_BAR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkProgressBar"))
64  
65 #define GE_IS_MENU_SHELL(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkMenuShell"))
66 #define GE_IS_MENU(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkMenu"))
67 #define GE_IS_MENU_BAR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkMenuBar"))
68 #define GE_IS_MENU_ITEM(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkMenuItem"))
69
70 #define GE_IS_CHECK_MENU_ITEM(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkCheckMenuItem"))
71
72 #define GE_IS_RANGE(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkRange"))
73  
74 #define GE_IS_SCROLLBAR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkScrollbar"))
75 #define GE_IS_VSCROLLBAR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkVScrollbar"))
76 #define GE_IS_HSCROLLBAR(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkHScrollbar"))
77  
78 #define GE_IS_SCALE(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkScale"))
79 #define GE_IS_VSCALE(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkVScale"))
80 #define GE_IS_HSCALE(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkHScale"))
81   
82 #define GE_IS_PANED(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkPaned"))
83 #define GE_IS_VPANED(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkVPaned"))
84 #define GE_IS_HPANED(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkHPaned"))
85  
86 #define GE_IS_BOX(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkBox"))
87 #define GE_IS_VBOX(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkVBox"))
88 #define GE_IS_HBOX(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkHBox"))
89
90 #define GE_IS_CLIST(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkCList"))
91 #define GE_IS_TREE_VIEW(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkTreeView"))
92 #define GE_IS_ENTRY(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkEntry"))
93 #define GE_IS_BUTTON(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkButton"))
94 #define GE_IS_FIXED(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkFixed"))
95  
96 #define TOGGLE_BUTTON(object) (GE_IS_TOGGLE_BUTTON(object)?(GtkToggleButton *)object:NULL)
97  
98 #define GE_IS_NOTEBOOK(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkNotebook"))
99 #define GE_IS_CELL_RENDERER_TOGGLE(object) ((object) && ge_object_is_a ((GObject*)(object), "GtkCellRendererToggle"))
100
101 #define GE_WIDGET_HAS_DEFAULT(object) ((object) && GE_IS_WIDGET(object) && GTK_WIDGET_HAS_DEFAULT(object))
102
103
104 GE_INTERNAL gboolean ge_check_hint (GEHint hint, GQuark style_hint, GtkWidget *widget);
105
106 GE_INTERNAL gboolean ge_object_is_a (const GObject * object, const gchar * type_name);
107  
108 GE_INTERNAL gboolean ge_is_combo_box_entry (GtkWidget * widget);
109 GE_INTERNAL gboolean ge_is_combo_box (GtkWidget * widget, gboolean as_list);
110 GE_INTERNAL gboolean ge_is_combo (GtkWidget * widget);
111 GE_INTERNAL gboolean ge_is_in_combo_box (GtkWidget * widget);
112   
113 GE_INTERNAL gboolean ge_is_toolbar_item (GtkWidget * widget);
114   
115 GE_INTERNAL gboolean ge_is_panel_widget_item (GtkWidget * widget);
116  
117 GE_INTERNAL gboolean ge_is_bonobo_dock_item (GtkWidget * widget);
118
119 GE_INTERNAL GtkWidget *ge_find_combo_box_widget_parent (GtkWidget * widget);
120
121 GE_INTERNAL void ge_option_menu_get_props (GtkWidget * widget, 
122                             GtkRequisition * indicator_size, 
123                             GtkBorder * indicator_spacing);
124
125 GE_INTERNAL void ge_button_get_default_border (GtkWidget *widget, 
126                                                GtkBorder *border);
127
128 GE_INTERNAL gboolean ge_widget_is_ltr (GtkWidget *widget);
129
130 GE_INTERNAL guint ge_rc_parse_hint (GScanner *scanner, GQuark *quark);
131
132 #endif /* WIDGET_INFORMATION_H */