summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorleo2001-01-07 15:46:20 +0000
committerleo2001-01-07 15:46:20 +0000
commitd88eaa6475871ee4427620ba7c61a8a2c89395c8 (patch)
treed4383792991d90f674f081a59a46c6ab7f476f22 /linux
parent8ca5cc51bcdcb00cead46a655a646cc8c8e85b7d (diff)
Base top-level window class
git-svn-id: http://svn.leocad.org/trunk@223 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'linux')
-rw-r--r--linux/basewnd.cpp248
-rw-r--r--linux/system.cpp92
2 files changed, 287 insertions, 53 deletions
diff --git a/linux/basewnd.cpp b/linux/basewnd.cpp
new file mode 100644
index 0000000..ab90ddb
--- /dev/null
+++ b/linux/basewnd.cpp
@@ -0,0 +1,248 @@
+//
+// BaseWnd class implementation for Linux
+//
+
+#include <stdlib.h>
+#include <gdk/gdkkeysyms.h>
+#include "basewnd.h"
+#include "dialogs.h"
+#include "main.h"
+
+BaseWnd::BaseWnd (BaseWnd *parent, int menu_count)
+{
+ m_pMenuItems = new BaseMenuItem[menu_count];
+ m_pParent = parent;
+
+ m_pXID = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ if (parent != NULL)
+ gtk_window_set_transient_for (GTK_WINDOW (m_pXID), GTK_WINDOW (parent->GetXID ()));
+}
+
+BaseWnd::~BaseWnd ()
+{
+ delete [] m_pMenuItems;
+ m_pMenuItems = NULL;
+}
+
+void BaseWnd::BeginWait ()
+{
+ GdkCursor *cursor = gdk_cursor_new (GDK_WATCH);
+ gdk_window_set_cursor (m_pXID->window, cursor);
+ gdk_cursor_destroy (cursor);
+}
+
+void BaseWnd::EndWait ()
+{
+ gdk_window_set_cursor (m_pXID->window, NULL);
+}
+
+int BaseWnd::MessageBox (const char* text, const char* caption, int flags)
+{
+ GtkWidget *window, *w, *vbox, *hbox;
+ GtkAccelGroup *group;
+ int mode = (flags & LC_MB_TYPEMASK), ret, loop = 1;
+ guint tmp_key;
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_signal_connect (GTK_OBJECT (window), "delete_event",
+ GTK_SIGNAL_FUNC (dialog_delete_callback), NULL);
+ // gtk_signal_connect (GTK_OBJECT (window), "destroy",
+ // GTK_SIGNAL_FUNC (gtk_widget_destroy), NULL);
+ gtk_window_set_title (GTK_WINDOW (window), caption);
+ gtk_container_border_width (GTK_CONTAINER (window), 10);
+ gtk_object_set_data (GTK_OBJECT (window), "loop", &loop);
+ gtk_object_set_data (GTK_OBJECT (window), "ret", &ret);
+
+ if (m_pXID != NULL)
+ gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (m_pXID));
+ // gtk_widget_realize (window);
+
+ group = gtk_accel_group_new ();
+ gtk_window_add_accel_group (GTK_WINDOW (window), group);
+
+ vbox = gtk_vbox_new (FALSE, 10);
+ gtk_container_add (GTK_CONTAINER (window), vbox);
+ gtk_widget_show (vbox);
+
+ w = gtk_label_new (text);
+ gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2);
+ gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_LEFT);
+ gtk_widget_show (w);
+
+ w = gtk_hseparator_new ();
+ gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2);
+ gtk_widget_show (w);
+
+ hbox = gtk_hbox_new (FALSE, 10);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show (hbox);
+
+ if (mode == LC_MB_OK)
+ {
+ w = gtk_button_new_with_label ("Ok");
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (w), "clicked",
+ GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_OK));
+ GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT);
+ gtk_widget_grab_default (w);
+ gtk_widget_show (w);
+ ret = LC_OK;
+ }
+ else if (mode == LC_MB_OKCANCEL)
+ {
+ w = gtk_button_new_with_label ("Ok");
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (w), "clicked",
+ GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_OK));
+ GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT);
+ gtk_widget_grab_default (w);
+ gtk_widget_show (w);
+
+ w = gtk_button_new_with_label ("Cancel");
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (w), "clicked",
+ GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_CANCEL));
+ gtk_widget_show (w);
+ ret = LC_CANCEL;
+ }
+ else if (mode == LC_MB_YESNOCANCEL)
+ {
+ w = gtk_button_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (w)->child), "_Yes");
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (w), "clicked",
+ GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_YES));
+ gtk_widget_add_accelerator (w, "clicked", group, tmp_key, 0, (GtkAccelFlags)0);
+ GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT);
+ gtk_widget_grab_default (w);
+ gtk_widget_show (w);
+ gtk_window_set_focus (GTK_WINDOW (window), w);
+
+ w = gtk_button_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (w)->child), "_No");
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (w), "clicked",
+ GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_NO));
+ gtk_widget_add_accelerator (w, "clicked", group, tmp_key, 0, (GtkAccelFlags)0);
+ gtk_widget_show (w);
+
+ w = gtk_button_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (w)->child), "_Cancel");
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (w), "clicked",
+ GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_CANCEL));
+ gtk_widget_add_accelerator (w, "clicked", group, tmp_key, 0, (GtkAccelFlags)0);
+ gtk_widget_add_accelerator (w, "clicked", group, GDK_Escape, 0, (GtkAccelFlags)0);
+ gtk_widget_show (w);
+ ret = LC_CANCEL;
+ }
+ else /* if (mode == LC_MB_YESNO) */
+ {
+ w = gtk_button_new_with_label ("Yes");
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (w), "clicked",
+ GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_YES));
+ GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT);
+ gtk_widget_grab_default (w);
+ gtk_widget_show (w);
+
+ w = gtk_button_new_with_label ("No");
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (w), "clicked",
+ GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_NO));
+ gtk_widget_show (w);
+ ret = LC_NO;
+ }
+
+ gtk_widget_show (window);
+ gtk_grab_add (window);
+
+ while (loop)
+ gtk_main_iteration ();
+
+ gtk_grab_remove (window);
+ gtk_widget_destroy (window);
+
+ return ret;
+}
+
+void BaseWnd::ShowMenuItem (int id, bool show)
+{
+ if (show)
+ gtk_widget_show (m_pMenuItems[id].widget);
+ else
+ gtk_widget_hide (m_pMenuItems[id].widget);
+}
+
+void BaseWnd::EnableMenuItem (int id, bool enable)
+{
+ gtk_widget_set_sensitive (m_pMenuItems[id].widget, enable);
+}
+
+void BaseWnd::CheckMenuItem (int id, bool check)
+{
+ ignore_commands = true;
+ gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (m_pMenuItems[id].widget), check);
+ ignore_commands = false;
+}
+
+void BaseWnd::SetMenuItemText (int id, const char *text)
+{
+ guint accel_key = GDK_VoidSymbol;
+ gboolean underscore;
+ gchar *r, *p, *q, *str;
+ gchar *pattern;
+ gint length;
+
+ length = strlen (text);
+ pattern = g_new (gchar, length+1);
+ str = g_strdup (text);
+
+ underscore = FALSE;
+
+ p = q = str;
+ r = pattern;
+
+ while (*p)
+ {
+ if (underscore)
+ {
+ if (*p == '&')
+ *r++ = ' ';
+ else
+ {
+ *r++ = '_';
+ if (accel_key == GDK_VoidSymbol)
+ accel_key = gdk_keyval_to_lower (*p);
+ }
+
+ *q++ = *p;
+ underscore = FALSE;
+ }
+ else
+ {
+ if (*p == '&')
+ underscore = TRUE;
+ else
+ {
+ *q++ = *p;
+ *r++ = ' ';
+ }
+ }
+ p++;
+ }
+ *q = 0;
+ *r = 0;
+
+ gtk_label_set_text (GTK_LABEL (GTK_BIN (m_pMenuItems[id].widget)->child), str);
+ if (accel_key != GDK_VoidSymbol)
+ {
+ gtk_label_set_pattern (GTK_LABEL (GTK_BIN (m_pMenuItems[id].widget)->child), pattern);
+ gtk_widget_add_accelerator (m_pMenuItems[id].widget, "activate_item",
+ m_pMenuItems[id].accel, accel_key, 0, (GtkAccelFlags)0);
+ }
+
+ g_free (pattern);
+ g_free (str);
+}
+
diff --git a/linux/system.cpp b/linux/system.cpp
index 15ae6d1..f216a9e 100644
--- a/linux/system.cpp
+++ b/linux/system.cpp
@@ -21,20 +21,6 @@
// =============================================================================
// Cursor functions
-void Sys_BeginWait ()
-{
- GdkCursor *cursor = gdk_cursor_new (GDK_WATCH);
- gdk_window_set_cursor (main_window->window, cursor);
- gdk_cursor_destroy (cursor);
-}
-
-void Sys_EndWait ()
-{
- GdkCursor *cursor = gdk_cursor_new (GDK_LEFT_PTR);
- gdk_window_set_cursor (main_window->window, cursor);
- gdk_cursor_destroy (cursor);
-}
-
/*
void Sys_GetCursorPos (int *x, int *y)
{
@@ -96,7 +82,7 @@ void Sys_FinishMemoryRender(void* param)
{
LC_RENDER* render = (LC_RENDER*)param;
- gtk_gl_area_make_current (GTK_GL_AREA (drawing_area));
+ // gtk_gl_area_make_current (GTK_GL_AREA (drawing_area));
if (render->glxcontext == pfnglXGetCurrentContext ())
pfnglXMakeCurrent (render->xdisplay, None, NULL);
@@ -189,7 +175,7 @@ void SystemUpdateViewport(int new_vp, int old_vp)
{
char buf[64];
sprintf (buf, "menu_view_viewports_%02d", new_vp+1);
- gpointer item = gtk_object_get_data (GTK_OBJECT (main_window), buf);
+ gpointer item = gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), buf);
ignore_commands = true;
gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (item), TRUE);
@@ -358,14 +344,14 @@ void SystemUpdateUndoRedo(char* undo, char* redo)
strcpy(text, "Undo ");
if (undo)
strcat(text, undo);
- item = gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_undo");
+ item = gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_undo");
gtk_label_set_text (GTK_LABEL (GTK_BIN (item)->child), text);
gtk_widget_set_sensitive (GTK_WIDGET (item), undo != NULL);
strcpy(text, "Redo ");
if (redo)
strcat(text, redo);
- item = gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_redo");
+ item = gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_redo");
gtk_label_set_text (GTK_LABEL (GTK_BIN (item)->child), text);
gtk_widget_set_sensitive (GTK_WIDGET (item), redo != NULL);
@@ -384,7 +370,7 @@ void SystemUpdateSnap(const unsigned long snap)
void SystemUpdateCurrentCamera(Camera* pOld, Camera* pNew, Camera* pCamera)
{
- gpointer item = NULL, menu = gtk_object_get_data (GTK_OBJECT (main_window), "cameras_menu");
+ gpointer item = NULL, menu = gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "cameras_menu");
GList *lst = gtk_container_children (GTK_CONTAINER (menu));
for (int i = 0; pCamera; i++, pCamera = pCamera->m_pNext)
@@ -414,7 +400,7 @@ void SystemUpdateCurrentCamera(Camera* pOld, Camera* pNew, Camera* pCamera)
void SystemUpdateCameraMenu(Camera* pCamera)
{
- GtkWidget *menu = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "cameras_menu"));
+ GtkWidget *menu = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "cameras_menu"));
GtkWidget *item = NULL;
Camera* pFirst = pCamera;
GList *lst;
@@ -459,13 +445,13 @@ void SystemUpdateTime(bool bAnimation, int nTime, int nTotal)
gtk_widget_set_sensitive (anim_toolbar.prev, nTime > 1);
gtk_widget_set_sensitive (anim_toolbar.next, nTime < nTotal);
gtk_widget_set_sensitive (anim_toolbar.last, nTime != nTotal);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_view_step_first"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_view_step_first"));
gtk_widget_set_sensitive (item, nTime != 1);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_view_step_previous"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_view_step_previous"));
gtk_widget_set_sensitive (item, nTime > 1);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_view_step_next"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_view_step_next"));
gtk_widget_set_sensitive (item, nTime < nTotal);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_view_step_last"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_view_step_last"));
gtk_widget_set_sensitive (item, nTime != nTotal);
char text[11];
@@ -485,7 +471,7 @@ void SystemUpdateAnimation(bool bAnimation, bool bAddKeys)
gtk_widget_set_sensitive (anim_toolbar.stop, FALSE);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(anim_toolbar.anim), bAnimation);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(anim_toolbar.keys), bAddKeys);
- gpointer item = gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_copykeys");
+ gpointer item = gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_copykeys");
gtk_label_set_text (GTK_LABEL (GTK_BIN (item)->child),
bAnimation ? "Copy Keys from Instructions" : "Copy Keys from Animation");
ignore_commands = false;
@@ -507,65 +493,65 @@ void SystemUpdateSelected(unsigned long flags)
GtkWidget *item;
// select all/none/invert/by name (menu)
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_select_all"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_select_all"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_UNSELECTED) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_select_none"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_select_none"));
gtk_widget_set_sensitive (item, flags & (LC_SEL_PIECE|LC_SEL_CAMERA|LC_SEL_LIGHT) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_select_invert"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_select_invert"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_NO_PIECES) == 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_select_byname"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_select_byname"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_NO_PIECES) == 0);
// cut, copy (menu/toolbar)
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_cut"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_cut"));
gtk_widget_set_sensitive (item, (flags & (LC_SEL_PIECE|LC_SEL_CAMERA|LC_SEL_LIGHT)) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_copy"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_copy"));
gtk_widget_set_sensitive (item, (flags & (LC_SEL_PIECE|LC_SEL_CAMERA|LC_SEL_LIGHT)) != 0);
gtk_widget_set_sensitive (main_toolbar.cut, (flags & (LC_SEL_PIECE|LC_SEL_CAMERA|LC_SEL_LIGHT)) != 0);
gtk_widget_set_sensitive (main_toolbar.copy, (flags & (LC_SEL_PIECE|LC_SEL_CAMERA|LC_SEL_LIGHT)) != 0);
// delete, array, hide sel/unsel, unhideall, copykeys (menu)
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_delete"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_delete"));
gtk_widget_set_sensitive (item, (flags & (LC_SEL_PIECE|LC_SEL_CAMERA|LC_SEL_LIGHT)) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_array"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_array"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_PIECE) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_hide_selected"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_hide_selected"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_PIECE) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_hide_unselected"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_hide_unselected"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_UNSELECTED) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_unhide_all"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_unhide_all"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_HIDDEN) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_copykeys"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_copykeys"));
gtk_widget_set_sensitive (item, (flags & (LC_SEL_PIECE|LC_SEL_CAMERA|LC_SEL_LIGHT)) != 0);
// groups (menu)
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_group"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_group"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_CANGROUP) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_ungroup"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_ungroup"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_GROUP) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_group_add"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_group_add"));
gtk_widget_set_sensitive (item, (flags & (LC_SEL_GROUP|LC_SEL_FOCUSGROUP)) == LC_SEL_GROUP);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_group_remove"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_group_remove"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_FOCUSGROUP) != 0);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_piece_group_edit"));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_piece_group_edit"));
gtk_widget_set_sensitive (item, (flags & LC_SEL_NO_PIECES) == 0);
gtk_widget_set_sensitive (tool_toolbar.prev, (flags & LC_SEL_PIECE) != 0);
gtk_widget_set_sensitive (tool_toolbar.next, (flags & LC_SEL_PIECE) != 0);
}
-void SystemUpdateRecentMenu(char names[4][LC_MAXPATH])
+void SystemUpdateRecentMenu (String names[4])
{
- GtkAccelGroup *accel = (GtkAccelGroup*)gtk_object_get_data (GTK_OBJECT (main_window), "file_menu_accel");
+ GtkAccelGroup *accel = (GtkAccelGroup*)gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "file_menu_accel");
GtkWidget *item;
char buf[32];
for (int i = 0; i < 4; i++)
{
sprintf (buf, "menu_file_recent%d", i+1);
- item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), buf));
+ item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), buf));
- if (strlen (names[i]) == 0)
+ if (!names[i].IsEmpty ())
{
if (i == 0)
{
@@ -580,7 +566,7 @@ void SystemUpdateRecentMenu(char names[4][LC_MAXPATH])
char pattern[LC_MAXPATH+4], text[LC_MAXPATH+4];
gint length;
- sprintf (text, "%d- %s", i+1, names[i]);
+ sprintf (text, "%d- %s", i+1, (char*)names[i]);
gtk_label_set_text (GTK_LABEL (GTK_BIN (item)->child), text);
length = strlen (text);
@@ -599,7 +585,7 @@ void SystemUpdateRecentMenu(char names[4][LC_MAXPATH])
void SystemUpdatePaste(bool enable)
{
gtk_widget_set_sensitive (main_toolbar.paste, enable);
- GtkWidget *item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (main_window), "menu_edit_paste"));
+ GtkWidget *item = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "menu_edit_paste"));
gtk_widget_set_sensitive (item, enable);
}
@@ -706,13 +692,13 @@ void SystemDoWaitCursor(int code)
if (code == 1)
{
GdkCursor *cursor = gdk_cursor_new (GDK_WATCH);
- gdk_window_set_cursor (main_window->window, cursor);
+ gdk_window_set_cursor (((GtkWidget*)(*main_window))->window, cursor);
gdk_cursor_destroy (cursor);
}
else
{
GdkCursor *cursor = gdk_cursor_new (GDK_LEFT_PTR);
- gdk_window_set_cursor (main_window->window, cursor);
+ gdk_window_set_cursor (((GtkWidget*)(*main_window))->window, cursor);
gdk_cursor_destroy (cursor);
}
}
@@ -728,7 +714,7 @@ File* SystemImportClipboard()
void SystemSetWindowCaption(char* caption)
{
- gtk_window_set_title (GTK_WINDOW (main_window), caption);
+ gtk_window_set_title (GTK_WINDOW (((GtkWidget*)(*main_window))), caption);
}
void SystemRedrawView()
@@ -752,6 +738,6 @@ void SystemReleaseMouse()
void SystemSwapBuffers()
{
- if (drawing_area)
- gtk_gl_area_swapbuffers (GTK_GL_AREA(drawing_area));
+ // if (drawing_area)
+ // gtk_gl_area_swapbuffers (GTK_GL_AREA(drawing_area));
}