Update of /cvsroot/htoolkit/port/src/cbits/GTK
In directory sc8-pr-cvs1:/tmp/cvs-serv14568/src/cbits/GTK
Modified Files:
Frame.c
Added Files:
ToolBar.c
Log Message:
Added implementation for ToolBar. The Windows version is still in very basic
state.
--- NEW FILE: ToolBar.c ---
#include "ToolBar.h"
#include "Internals.h"
#include "Handlers_stub.h"
WindowHandle osCreateToolBar(char *name, int place, int band_num, int band_position, int offset)
{
GtkWidget *toolbar;
BonoboDockPlacement placement;
toolbar = gtk_toolbar_new();
gtk_signal_connect (GTK_OBJECT(toolbar), "destroy",
GTK_SIGNAL_FUNC(handleWindowDestroy),
NULL);
switch (place)
{
case 0: placement = BONOBO_DOCK_LEFT; break;
case 1: placement = BONOBO_DOCK_TOP; break;
case 2: placement = BONOBO_DOCK_RIGHT; break;
case 3: placement = BONOBO_DOCK_BOTTOM; break;
default:
placement = BONOBO_DOCK_TOP;
break;
}
gnome_app_add_toolbar(GNOME_APP(gFrameWidget),
GTK_TOOLBAR(toolbar),
name,
BONOBO_DOCK_ITEM_BEH_NORMAL,
placement,
band_num,
band_position,
offset);
return toolbar;
}
void osDestroyToolBar(GtkWidget *toolbar)
{
gtk_widget_destroy(toolbar);
}
void tool_button_clicked(GtkWidget *widget, gpointer user_data)
{
handleToolCommand((ToolHandle) user_data);
}
ToolHandle osInsertToolButton(WindowHandle toolbar, int pos)
{
GtkToolItem *item = gtk_tool_button_new("", gtk_image_new());
gtk_signal_connect (GTK_OBJECT(GTK_TOOL_BUTTON(item)->button), "clicked",
GTK_SIGNAL_FUNC(tool_button_clicked),
item);
gtk_signal_connect (GTK_OBJECT(item), "destroy",
GTK_SIGNAL_FUNC(handleToolDestroy),
NULL);
gtk_tool_button_set_label_widget(GTK_TOOL_BUTTON(item), gtk_label_new(""));
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, pos);
gtk_widget_show_all(GTK_WIDGET(item));
return GTK_WIDGET(item);
}
ToolHandle osInsertToolCheckButton(WindowHandle toolbar, int pos)
{
GtkToolItem *item = gtk_toggle_tool_button_new();
gtk_signal_connect (GTK_OBJECT(GTK_TOOL_BUTTON(item)->button), "clicked",
GTK_SIGNAL_FUNC(tool_button_clicked),
item);
gtk_signal_connect (GTK_OBJECT(item), "destroy",
GTK_SIGNAL_FUNC(handleToolDestroy),
NULL);
gtk_tool_button_set_label_widget(GTK_TOOL_BUTTON(item), gtk_label_new(""));
gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(item), gtk_image_new());
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, pos);
gtk_widget_show_all(GTK_WIDGET(item));
return GTK_WIDGET(item);
}
ToolHandle osInsertToolLine(WindowHandle toolbar, int pos)
{
GtkToolItem *item = gtk_separator_tool_item_new();
gtk_signal_connect (GTK_OBJECT(item), "destroy",
GTK_SIGNAL_FUNC(handleToolDestroy),
NULL);
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, pos);
gtk_widget_show_all(GTK_WIDGET(item));
return GTK_WIDGET(item);
}
void osSetToolButtonBitmap(ToolHandle toolButton, BitmapHandle bitmap)
{
gtk_image_set_from_pixbuf(gtk_tool_button_get_icon_widget (GTK_TOOL_BUTTON(toolButton)), bitmap->pixbuf);
}
void osSetToolButtonEnabled(ToolHandle toolButton, BOOL enabled)
{
gtk_widget_set_sensitive(toolButton,enabled);
}
BOOL osGetToolButtonEnabled(ToolHandle toolButton)
{
return GTK_WIDGET_SENSITIVE(toolButton);
}
void osSetToolButtonTip(ToolHandle toolButton, char *text)
{
GtkWidget *toolbar = gtk_widget_get_parent(toolButton);
gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolButton), GTK_TOOLBAR(toolbar)->tooltips, text, NULL);
}
char *osGetToolButtonTip(ToolHandle toolButton)
{
GtkTooltipsData *tips_data = gtk_tooltips_data_get(GTK_BIN (toolButton)->child);
return strdup(tips_data->tip_text);
}
void osSetToolButtonText(ToolHandle toolButton, char *text)
{
GtkWidget *label = gtk_tool_button_get_label_widget (GTK_TOOL_BUTTON(toolButton));
gtk_label_set_text(GTK_LABEL(label), text);
}
char *osGetToolButtonText(ToolHandle toolButton)
{
GtkWidget *label = gtk_tool_button_get_label_widget (GTK_TOOL_BUTTON(toolButton));
char *text = gtk_label_get_text(GTK_LABEL(label));
return strdup(text);
}
void osSetToolButtonChecked(ToolHandle toolButton, BOOL bState)
{
gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON(toolButton), bState);
};
BOOL osGetToolButtonChecked(ToolHandle toolButton)
{
return gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(toolButton));
};
void osDestroyToolItem(ToolHandle toolItem)
{
gtk_widget_destroy(toolItem);
}
int osGetToolItemPos(ToolHandle toolItem)
{
GtkWidget *toolbar = gtk_widget_get_parent(toolItem);
return gtk_toolbar_get_item_index(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(toolItem));
}
Index: Frame.c
===================================================================
RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Frame.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** Frame.c 5 Jul 2003 11:01:16 -0000 1.10
--- Frame.c 8 Jul 2003 20:31:29 -0000 1.11
***************
*** 238,241 ****
--- 238,243 ----
gtk_widget_show_all(gFrameWidget);
+ gnome_app_enable_layout_config (GNOME_APP(gFrameWidget), TRUE);
+
/* Create "Pages" menu */
pages_menu = gtk_menu_new();
***************
*** 329,331 ****
--- 331,335 ----
gtk_widget_show_all(gFrameWidget);
+
+ gnome_app_enable_layout_config (GNOME_APP(gFrameWidget), TRUE);
}
|