From f9f670643398aac6ad917505ccd76d2cf50230c7 Mon Sep 17 00:00:00 2001 From: leo Date: Sun, 5 Jun 2005 01:51:55 +0000 Subject: Updated LeoCAD to use GTK+ 2.0 git-svn-id: http://svn.leocad.org/trunk@403 c7d43263-9d01-0410-8a33-9dba5d9f93d6 --- Makefile | 7 +- common/array.cpp | 2 +- common/defines.h | 1 + common/module.mk | 13 +-- common/preview.cpp | 2 +- config.mk | 16 ++- depend.sh | 15 --- linux/basewnd.cpp | 10 +- linux/dialogs.cpp | 75 ++++++++------ linux/dlgfile.cpp | 2 +- linux/dlgpiece.cpp | 6 +- linux/glwindow.cpp | 2 +- linux/gtkmisc.cpp | 22 ++-- linux/gtktools.cpp | 3 + linux/main.cpp | 4 +- linux/menu.cpp | 2 +- linux/module.mk | 7 +- linux/pixmenu.c | 291 ----------------------------------------------------- linux/pixmenu.h | 59 ----------- linux/system.cpp | 8 +- linux/toolbar.cpp | 27 +++-- 21 files changed, 124 insertions(+), 450 deletions(-) delete mode 100755 depend.sh delete mode 100644 linux/pixmenu.c delete mode 100644 linux/pixmenu.h diff --git a/Makefile b/Makefile index 58ff93d..c9028bc 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ ### ALL CONFIGURATION SHOULD BE IN CONFIG.MK, NOT HERE include config.mk --include $(OSDIR)/config.mk ### Module directories MODULES := $(OSDIR) common @@ -18,6 +17,8 @@ SRC := BIN := bin/leocad +-include $(OSDIR)/config.mk + ### include the description for ### each module include $(patsubst %,%/module.mk,$(MODULES)) @@ -53,12 +54,12 @@ endif ### dependencies %.d: %.c @[ -s $(OSDIR)/config.h ] || $(MAKE) config - @./depend.sh $@ $(@D) $(CC) $(CFLAGS) $(CPPFLAGS) -w $< + @$(CC) -MM -MT '$(patsubst %.d,%.o, $@)' $(CFLAGS) $(CPPFLAGS) -w $< > $@ @[ -s $@ ] || rm -f $@ %.d: %.cpp @[ -s $(OSDIR)/config.h ] || $(MAKE) config - @./depend.sh $@ $(@D) $(CXX) $(CXXFLAGS) $(CPPFLAGS) -w $< + @$(CXX) -MM -MT '$(patsubst %.d,%.o, $@)' $(CXXFLAGS) $(CPPFLAGS) -w $< > $@ @[ -s $@ ] || rm -f $@ ### Various cleaning functions diff --git a/common/array.cpp b/common/array.cpp index 0811d2d..3d58c55 100755 --- a/common/array.cpp +++ b/common/array.cpp @@ -181,7 +181,7 @@ void ObjArray::InsertAt(int Index, const T& Obj) else Expand(1); - m_nLength++; + m_Length++; for (int i = m_Length - 1; i > Index; i--) m_Data[i] = m_Data[i-1]; diff --git a/common/defines.h b/common/defines.h index 55829c2..e5e7e7d 100644 --- a/common/defines.h +++ b/common/defines.h @@ -51,6 +51,7 @@ char* strupr(char* string); char* strlwr(char* string); +int stricmp(const char* str1, const char* str2); #endif diff --git a/common/module.mk b/common/module.mk index e9c9bfc..793d387 100644 --- a/common/module.mk +++ b/common/module.mk @@ -1,9 +1,10 @@ -SRC += common/camera.cpp common/console.cpp common/curve.cpp common/file.cpp common/globals.cpp \ - common/group.cpp common/image.cpp common/im_bmp.cpp common/im_gif.cpp common/libman.cpp \ - common/library.cpp common/light.cpp common/mainwnd.cpp common/matrix.cpp common/message.cpp \ - common/minifig.cpp common/object.cpp common/opengl.cpp common/piece.cpp common/pieceinf.cpp \ - common/preview.cpp common/project.cpp common/quant.cpp common/str.cpp common/terrain.cpp \ - common/texfont.cpp common/texture.cpp common/tr.cpp common/vector.cpp common/view.cpp +SRC += common/algebra.cpp common/camera.cpp common/console.cpp common/curve.cpp common/file.cpp \ + common/globals.cpp common/group.cpp common/image.cpp common/im_bmp.cpp common/im_gif.cpp \ + common/libman.cpp common/library.cpp common/light.cpp common/mainwnd.cpp common/matrix.cpp \ + common/message.cpp common/minifig.cpp common/object.cpp common/opengl.cpp common/piece.cpp \ + common/pieceinf.cpp common/preview.cpp common/project.cpp common/quant.cpp common/str.cpp \ + common/terrain.cpp common/texfont.cpp common/texture.cpp common/tr.cpp common/vector.cpp \ + common/view.cpp ifeq ($(HAVE_JPEGLIB), yes) LIBS += -ljpeg diff --git a/common/preview.cpp b/common/preview.cpp index bc63a0b..8317104 100644 --- a/common/preview.cpp +++ b/common/preview.cpp @@ -44,7 +44,7 @@ void PiecePreview::OnDraw () gluPerspective (30.0f, aspect, 1.0f, 100.0f); glMatrixMode (GL_MODELVIEW); glLoadIdentity (); - m_pPieceInfo->ZoomExtents (); + m_pPieceInfo->ZoomExtents (30.0f, aspect); float pos[4] = { 0, 0, 10, 0 }, *bg = project->GetBackgroundColor (); glLightfv (GL_LIGHT0, GL_POSITION, pos); diff --git a/config.mk b/config.mk index 23d71cb..14f216a 100644 --- a/config.mk +++ b/config.mk @@ -22,7 +22,6 @@ ifeq ($(shell uname), Linux) OS := -DLC_LINUX OSDIR := linux -GTK_CONFIG := gtk-config endif @@ -32,7 +31,6 @@ ifeq ($(shell uname), FreeBSD) OS := -DLC_LINUX OSDIR := linux -GTK_CONFIG := gtk12-config CPPFLAGS += -L/usr/local/lib endif @@ -235,7 +233,19 @@ config: echo "" >> $(OSDIR)/config.h @rm -f endiantest.c endiantest -### Check if the user has libjpeg installed +#### Check if the user has GTK+ and GLIB installed. + @echo -n "Checking if GLIB and GTK+ are installed... " + @if (pkg-config --atleast-version=2.0.0 glib-2.0) && (pkg-config --atleast-version=2.0.0 gtk+-2.0); then \ + echo "ok"; \ + echo "CFLAGS += \$$(shell pkg-config gtk+-2.0 --cflags)" >> $(OSDIR)/config.mk; \ + echo "CXXFLAGS += \$$(shell pkg-config gtk+-2.0 --cflags)" >> $(OSDIR)/config.mk; \ + echo "LIBS += \$$(shell pkg-config gtk+-2.0 --libs)" >> $(OSDIR)/config.mk; \ + else \ + echo "failed"; \ + echo "\$$(error GLIB and GTK+ not found, install the libraries and run make config again.)" >> $(OSDIR)/config.mk; \ + fi + +## Check if the user has libjpeg installed @echo -n "Checking for jpeg support... " @echo "char jpeg_read_header();" > jpegtest.c @echo "int main() { jpeg_read_header(); return 0; }" >> jpegtest.c diff --git a/depend.sh b/depend.sh deleted file mode 100755 index 7e43e21..0000000 --- a/depend.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -DEP=$1 -DIR=$2 -CC=$3 -shift 3 - -echo -n "$DEP $DIR/" > $DEP -if { !(eval $CC -MM $*) >> $DEP; }; then - rm -f $DEP; - exit 1; -fi - -#sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' - diff --git a/linux/basewnd.cpp b/linux/basewnd.cpp index ab90ddb..e3148c0 100644 --- a/linux/basewnd.cpp +++ b/linux/basewnd.cpp @@ -112,7 +112,7 @@ int BaseWnd::MessageBox (const char* text, const char* caption, int flags) 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_add_accelerator (w, "clicked", group, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT); gtk_widget_grab_default (w); gtk_widget_show (w); @@ -123,7 +123,7 @@ int BaseWnd::MessageBox (const char* text, const char* caption, int flags) 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_add_accelerator (w, "clicked", group, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (w); w = gtk_button_new_with_label (""); @@ -131,8 +131,8 @@ int BaseWnd::MessageBox (const char* text, const char* caption, int flags) 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_add_accelerator (w, "clicked", group, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); + gtk_widget_add_accelerator (w, "clicked", group, GDK_Escape, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (w); ret = LC_CANCEL; } @@ -239,7 +239,7 @@ void BaseWnd::SetMenuItemText (int id, const char *text) { 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); + m_pMenuItems[id].accel, accel_key, (GdkModifierType)0, (GtkAccelFlags)0); } g_free (pattern); diff --git a/linux/dialogs.cpp b/linux/dialogs.cpp index bd84a07..95914d4 100644 --- a/linux/dialogs.cpp +++ b/linux/dialogs.cpp @@ -128,7 +128,7 @@ int msgbox_execute (const char* text, const char *caption, int flags) 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_add_accelerator (w, "clicked", group, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT); gtk_widget_grab_default (w); gtk_widget_show (w); @@ -139,7 +139,7 @@ int msgbox_execute (const char* text, const char *caption, int flags) 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_add_accelerator (w, "clicked", group, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (w); w = gtk_button_new_with_label (""); @@ -147,8 +147,8 @@ int msgbox_execute (const char* text, const char *caption, int flags) 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_add_accelerator (w, "clicked", group, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); + gtk_widget_add_accelerator (w, "clicked", group, GDK_Escape, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (w); ret = LC_CANCEL; } @@ -586,7 +586,7 @@ int arraydlg_execute(void* param) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Cancel"); gtk_widget_show (button); @@ -595,7 +595,7 @@ int arraydlg_execute(void* param) gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0); gtk_container_border_width (GTK_CONTAINER (button), 12); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); hbox2 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox2); @@ -753,6 +753,7 @@ int aboutdlg_execute (void* param) { #include "pixmaps/icon32.xpm" GtkWidget *dlg, *vbox1, *vbox2, *hbox, *frame, *scr, *w; + GtkTextBuffer *buffer; char info[512], buf[64]; GLboolean valueb; GLint value; @@ -785,11 +786,11 @@ int aboutdlg_execute (void* param) gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 10); - w = gtk_label_new ("LeoCAD for "LC_VERSION_OSNAME" Version "LC_VERSION); + w = gtk_label_new ("LeoCAD for "LC_VERSION_OSNAME" Version "LC_VERSION_TEXT); gtk_widget_show (w); gtk_box_pack_start (GTK_BOX (vbox2), w, FALSE, FALSE, 5); - w = gtk_label_new ("Copyright (c) 1996-2001, BT Software"); + w = gtk_label_new ("Copyright (c) 1996-2005, BT Software"); gtk_widget_show (w); gtk_box_pack_start (GTK_BOX (vbox2), w, FALSE, FALSE, 5); @@ -808,7 +809,7 @@ int aboutdlg_execute (void* param) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (w, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); frame = gtk_frame_new ("System Information"); gtk_widget_show (frame); @@ -882,13 +883,15 @@ int aboutdlg_execute (void* param) gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scr), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox2), scr, TRUE, TRUE, 0); - w = gtk_text_new (NULL, NULL); + w = gtk_text_view_new(); gtk_widget_show (w); gtk_container_add (GTK_CONTAINER (scr), w); - gtk_text_insert (GTK_TEXT (w), NULL, NULL, NULL, info, strlen(info)); - if (GTK_TEXT (w)->vadj != NULL) - gtk_adjustment_set_value (GTK_ADJUSTMENT (GTK_TEXT (w)->vadj), 0); + buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)); + gtk_text_buffer_set_text (buffer, info, -1); + + // if (GTK_TEXT (w)->vadj != NULL) + // gtk_adjustment_set_value (GTK_ADJUSTMENT (GTK_TEXT (w)->vadj), 0); return dlg_domodal(dlg, LC_OK); } @@ -1015,7 +1018,7 @@ int htmldlg_execute (void* param) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Cancel"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -1024,7 +1027,7 @@ int htmldlg_execute (void* param) gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, TRUE, 0); gtk_widget_set_usize (button, 60, -2); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Images..."); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -1292,7 +1295,7 @@ int imageoptsdlg_execute(void* param, bool from_htmldlg) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Cancel"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -1301,7 +1304,7 @@ int imageoptsdlg_execute(void* param, bool from_htmldlg) gtk_box_pack_start (GTK_BOX (hbox2), button, FALSE, TRUE, 0); gtk_widget_set_usize (button, 70, -2); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); frame = gtk_frame_new ("Format"); gtk_widget_show (frame); @@ -1500,7 +1503,7 @@ int povraydlg_execute(void* param) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Cancel"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -1509,7 +1512,7 @@ int povraydlg_execute(void* param) gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, TRUE, 5); gtk_widget_set_usize (button, -2, 25); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); s.render = gtk_check_button_new_with_label ("Render Scene"); gtk_widget_show (s.render); @@ -2074,7 +2077,7 @@ int preferencesdlg_execute(void* param) gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_set_usize (button, 80, 25); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("OK"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -2083,7 +2086,7 @@ int preferencesdlg_execute(void* param) gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_set_usize (button, 80, 25); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Make Default"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -2408,13 +2411,15 @@ int propertiesdlg_execute(void* param) gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); - s.sum_comments = gtk_text_new (NULL, NULL); + s.sum_comments = gtk_text_view_new(); gtk_widget_show (s.sum_comments); gtk_box_pack_start (GTK_BOX (vbox2), s.sum_comments, TRUE, TRUE, 0); - gtk_text_set_editable (GTK_TEXT (s.sum_comments), TRUE); + // gtk_text_set_editable (GTK_TEXT (s.sum_comments), TRUE); gtk_widget_realize (s.sum_comments); - gtk_text_insert (GTK_TEXT (s.sum_comments), NULL, NULL, NULL, - opts->strComments, strlen(opts->strComments)); + + GtkTextBuffer *buffer; + buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(s.sum_comments)); + gtk_text_buffer_set_text(buffer, opts->strComments, -1); int i, j, col[LC_MAXCOLORS], totalcount[LC_MAXCOLORS]; memset (&totalcount, 0, sizeof (totalcount)); @@ -2527,7 +2532,7 @@ int propertiesdlg_execute(void* param) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("OK"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -2536,7 +2541,7 @@ int propertiesdlg_execute(void* param) gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_set_usize (button, 70, 25); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); return dlg_domodal(dlg, LC_CANCEL); } @@ -2561,6 +2566,7 @@ static void groupeditdlg_ok(GtkWidget *widget, gpointer data) void groupeditdlg_addchildren(GtkWidget *tree, Group *pGroup, LC_GROUPEDITDLG_OPTS *opts) { +#if 0 int i; GtkWidget *item, *subtree; @@ -2603,10 +2609,12 @@ void groupeditdlg_addchildren(GtkWidget *tree, Group *pGroup, LC_GROUPEDITDLG_OP gtk_tree_append (GTK_TREE(tree), item); gtk_widget_show (item); } +#endif } int groupeditdlg_execute(void* param) { +#if 0 GtkWidget *dlg; GtkWidget *vbox, *hbox; GtkWidget *button, *tree, *scrolled_win; @@ -2656,7 +2664,7 @@ int groupeditdlg_execute(void* param) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Cancel"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -2665,11 +2673,13 @@ int groupeditdlg_execute(void* param) gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, TRUE, 0); gtk_widget_set_usize (button, 70, 25); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); groupeditdlg_addchildren(tree, NULL, (LC_GROUPEDITDLG_OPTS*)param); return dlg_domodal(dlg, LC_CANCEL); +#endif + return 0; } // ========================================================= @@ -2735,7 +2745,7 @@ int groupdlg_execute(void* param) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Cancel"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -2744,7 +2754,7 @@ int groupdlg_execute(void* param) gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, TRUE, 0); gtk_widget_set_usize (button, 70, 25); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); return dlg_domodal(dlg, LC_CANCEL); } @@ -2825,6 +2835,7 @@ static void librarydlg_command (GtkWidget *widget, gpointer data) int librarydlg_execute (void *param) { +#if 0 GtkWidget *dlg, *vbox, *clist, *scr, *ctree, *hsplit, *item, *menu, *menubar, *handle; GtkAccelGroup *accel, *menu_accel; int loop = 1, ret = LC_CANCEL; @@ -2960,6 +2971,8 @@ int librarydlg_execute (void *param) gtk_widget_destroy (dlg); return ret; +#endif + return LC_OK; } #else diff --git a/linux/dlgfile.cpp b/linux/dlgfile.cpp index 7806ab6..a6d6fb8 100755 --- a/linux/dlgfile.cpp +++ b/linux/dlgfile.cpp @@ -24,7 +24,7 @@ static void openprojectdlg_select (GtkCList *clist, gint row, gint col, GdkEvent *event, GtkPreview *preview) { GtkWidget *parent = gtk_widget_get_toplevel (GTK_WIDGET (clist)); - char *filename, *p; + const char *filename, *p; bool loaded = false; Image image; diff --git a/linux/dlgpiece.cpp b/linux/dlgpiece.cpp index e68e2e6..906b760 100755 --- a/linux/dlgpiece.cpp +++ b/linux/dlgpiece.cpp @@ -102,7 +102,7 @@ static void minifigdlg_piece_changed (GtkWidget *widget, gpointer data) { LC_MINIFIGDLG_STRUCT* info; int i, piece_type; - char* desc; + const gchar* desc; info = (LC_MINIFIGDLG_STRUCT*)gtk_object_get_data (GTK_OBJECT (widget), "info"); if (info == NULL) @@ -379,7 +379,7 @@ int minifigdlg_execute (void* param) GtkAccelGroup *accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (dlg), accel_group); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Return, 0, GTK_ACCEL_VISIBLE); + GDK_Return, (GdkModifierType)0, GTK_ACCEL_VISIBLE); button = gtk_button_new_with_label ("Cancel"); gtk_signal_connect (GTK_OBJECT (button), "clicked", @@ -388,7 +388,7 @@ int minifigdlg_execute (void* param) gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, TRUE, 0); gtk_widget_set_usize (button, 70, 25); gtk_widget_add_accelerator (button, "clicked", accel_group, - GDK_Escape, 0, GTK_ACCEL_VISIBLE); + GDK_Escape, (GdkModifierType)0, GTK_ACCEL_VISIBLE); // Fill the combo boxes with the available pieces for (i = 0; i < LC_MFW_NUMITEMS; i++) diff --git a/linux/glwindow.cpp b/linux/glwindow.cpp index 8f15a10..9dfeac5 100644 --- a/linux/glwindow.cpp +++ b/linux/glwindow.cpp @@ -33,7 +33,7 @@ static gint expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer dat if (event->count > 0) return TRUE; - + printf("draw\n"); wnd->OnDraw (); return TRUE; diff --git a/linux/gtkmisc.cpp b/linux/gtkmisc.cpp index d331716..1ca6e85 100755 --- a/linux/gtkmisc.cpp +++ b/linux/gtkmisc.cpp @@ -8,7 +8,7 @@ #include "gtkmisc.h" #include "globals.h" #include "project.h" -#include "pixmenu.h" +//#include "pixmenu.h" #include "gtktools.h" // ============================================================================= @@ -116,7 +116,8 @@ GtkWidget* create_sub_menu (GtkWidget *bar, char *label, GtkAccelGroup *accel, G menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu); - *menu_accel = gtk_menu_ensure_uline_accel_group (GTK_MENU (menu)); + // *menu_accel = gtk_menu_ensure_uline_accel_group (GTK_MENU (menu)); + *menu_accel = gtk_menu_get_accel_group(GTK_MENU(menu)); return menu; } @@ -129,13 +130,14 @@ GtkWidget* create_menu_in_menu (GtkWidget *menu, gchar *label, GtkAccelGroup *me item = gtk_menu_item_new_with_label (""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (item)->child), label); - gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, 0, (GtkAccelFlags)0); + gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (item); gtk_container_add (GTK_CONTAINER (menu), item); submenu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); - *submenu_accel = gtk_menu_ensure_uline_accel_group (GTK_MENU (submenu)); + // *submenu_accel = gtk_menu_ensure_uline_accel_group (GTK_MENU (submenu)); + *submenu_accel = gtk_menu_get_accel_group(GTK_MENU(submenu)); return submenu; } @@ -148,7 +150,7 @@ GtkWidget* create_menu_item (GtkWidget *menu, gchar *label, GtkAccelGroup *menu_ item = gtk_menu_item_new_with_label (""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (item)->child), label); - gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, 0, (GtkAccelFlags)0); + gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (item); gtk_container_add (GTK_CONTAINER (menu), item); @@ -166,7 +168,7 @@ GtkWidget* create_pixmap_menu_item (GtkWidget *menu, gchar *label, gchar **pixma GtkWidget *item, *accel_label, *pixmap_widget; guint tmp_key; - item = gtk_pixmap_menu_item_new (); + item = gtk_image_menu_item_new (); accel_label = gtk_accel_label_new (label); gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5); @@ -177,10 +179,10 @@ GtkWidget* create_pixmap_menu_item (GtkWidget *menu, gchar *label, gchar **pixma pixmap_widget = new_pixmap (GTK_WIDGET (window), pixmap); gtk_widget_show (pixmap_widget); - gtk_pixmap_menu_item_set_pixmap (GTK_PIXMAP_MENU_ITEM (item), pixmap_widget); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), pixmap_widget); tmp_key = gtk_label_parse_uline (GTK_LABEL (accel_label), label); - gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, 0, (GtkAccelFlags)0); + gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (item); gtk_container_add (GTK_CONTAINER (menu), item); @@ -200,7 +202,7 @@ GtkWidget* create_check_menu_item (GtkWidget *menu, gchar *label, GtkAccelGroup item = gtk_check_menu_item_new_with_label (""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (item)->child), label); - gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, 0, (GtkAccelFlags)0); + gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (item); gtk_container_add (GTK_CONTAINER (menu), item); gtk_signal_connect (GTK_OBJECT (item), "activate", GTK_SIGNAL_FUNC (func), GINT_TO_POINTER (id)); @@ -223,7 +225,7 @@ GtkWidget* create_radio_menu_item (GtkWidget *menu, GtkWidget *last, gchar *labe group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (last)); item = gtk_radio_menu_item_new_with_label (group, ""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (item)->child), label); - gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, 0, (GtkAccelFlags)0); + gtk_widget_add_accelerator (item, "activate_item", menu_accel, tmp_key, (GdkModifierType)0, (GtkAccelFlags)0); gtk_widget_show (item); gtk_container_add (GTK_CONTAINER (menu), item); gtk_signal_connect (GTK_OBJECT (item), "activate", GTK_SIGNAL_FUNC (func), GINT_TO_POINTER (id)); diff --git a/linux/gtktools.cpp b/linux/gtktools.cpp index c7edbe9..d285ce5 100644 --- a/linux/gtktools.cpp +++ b/linux/gtktools.cpp @@ -37,6 +37,8 @@ GtkWidget* clist_title_with_arrow (GtkWidget* clist, char col, char* label_text) void set_notebook_tab (GtkWidget *notebook, gint page_num, GtkWidget *widget) { + gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), page_num), widget); + /* GtkNotebookPage *page; GtkWidget *notebook_page; @@ -47,6 +49,7 @@ void set_notebook_tab (GtkWidget *notebook, gint page_num, GtkWidget *widget) gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), notebook_page, widget, page_num); gtk_widget_unref (notebook_page); + */ } void set_button_pixmap (GtkWidget* widget, float* color) diff --git a/linux/main.cpp b/linux/main.cpp index 9e65d28..4330771 100644 --- a/linux/main.cpp +++ b/linux/main.cpp @@ -494,7 +494,7 @@ static void update_window_layout () if (pieces_floating == FALSE) gtk_paned_set_position (GTK_PANED (pieces_parent), ((GtkWidget*)(*main_window))->allocation.width - - pieces_width - GTK_PANED (pieces_parent)->gutter_size); + pieces_width); } else { @@ -702,7 +702,7 @@ int main (int argc, char* argv[]) // get the splitter in the correct size, must be done after the widget has been realized if ((pieces_floating == FALSE) && (pieces_visible == TRUE)) gtk_paned_set_position (GTK_PANED (pieces_parent), ((GtkWidget*)(*main_window))->allocation.width - - pieces_width - GTK_PANED (pieces_parent)->gutter_size); + pieces_width); if (project->Initialize (argc, argv, app_path, lib_path) == false) { diff --git a/linux/menu.cpp b/linux/menu.cpp index 35b656e..4a08170 100644 --- a/linux/menu.cpp +++ b/linux/menu.cpp @@ -25,7 +25,7 @@ void create_main_menu (GtkObject *window, GtkWidget *vbox) GtkWidget *handle_box, *menu_bar, *menu, *menu_in_menu, *item; GtkAccelGroup *accel, *menu_accel, *menu_in_menu_accel; - accel = gtk_accel_group_get_default (); + accel = NULL;//gtk_accel_group_get_default (); handle_box = gtk_handle_box_new (); gtk_box_pack_start (GTK_BOX (vbox), handle_box, FALSE, FALSE, 0); gtk_widget_show (handle_box); diff --git a/linux/module.mk b/linux/module.mk index b623698..853b7e7 100644 --- a/linux/module.mk +++ b/linux/module.mk @@ -1,10 +1,5 @@ -SRC += linux/profile.cpp linux/pixmenu.c \ +SRC += linux/profile.cpp \ linux/dialogs.cpp linux/dlgpiece.cpp linux/dlgfile.cpp \ linux/gtktools.cpp linux/main.cpp linux/menu.cpp \ linux/system.cpp linux/toolbar.cpp linux/gtkmisc.cpp \ linux/linux_gl.cpp linux/basewnd.cpp linux/glwindow.cpp - -CFLAGS += $(shell $(GTK_CONFIG) --cflags) -CXXFLAGS += $(shell $(GTK_CONFIG) --cflags) -LIBS += $(shell $(GTK_CONFIG) --libs) - diff --git a/linux/pixmenu.c b/linux/pixmenu.c deleted file mode 100644 index 004b32c..0000000 --- a/linux/pixmenu.c +++ /dev/null @@ -1,291 +0,0 @@ -/* Author: Dietmar Maurer */ - -#include "pixmenu.h" -#include -#include - -static void gtk_pixmap_menu_item_class_init (GtkPixmapMenuItemClass *klass); -static void gtk_pixmap_menu_item_init (GtkPixmapMenuItem *menu_item); -static void gtk_pixmap_menu_item_draw (GtkWidget *widget, - GdkRectangle *area); -static gint gtk_pixmap_menu_item_expose (GtkWidget *widget, - GdkEventExpose *event); - -/* we must override the following functions */ - -static void gtk_pixmap_menu_item_map (GtkWidget *widget); -static void gtk_pixmap_menu_item_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gtk_pixmap_menu_item_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); -static void gtk_pixmap_menu_item_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gtk_pixmap_menu_item_remove (GtkContainer *container, - GtkWidget *child); - - -static GtkMenuItemClass *parent_class = NULL; - -#define INDENT 18 - -GtkType -gtk_pixmap_menu_item_get_type (void) -{ - static GtkType pixmap_menu_item_type = 0; - - if (!pixmap_menu_item_type) - { - GtkTypeInfo pixmap_menu_item_info = - { - "GtkPixmapMenuItem", - sizeof (GtkPixmapMenuItem), - sizeof (GtkPixmapMenuItemClass), - (GtkClassInitFunc) gtk_pixmap_menu_item_class_init, - (GtkObjectInitFunc) gtk_pixmap_menu_item_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - pixmap_menu_item_type = gtk_type_unique (gtk_menu_item_get_type (), - &pixmap_menu_item_info); - } - - return pixmap_menu_item_type; -} - -/** - * gtk_pixmap_menu_item_new - * - * Creates a new pixmap menu item. Use gtk_pixmap_menu_item_set_pixmap() - * to set the pixmap wich is displayed at the left side. - * - * Returns: - * &GtkWidget pointer to new menu item - **/ - -GtkWidget* -gtk_pixmap_menu_item_new (void) -{ - return GTK_WIDGET (gtk_type_new (gtk_pixmap_menu_item_get_type ())); -} - -static void -gtk_pixmap_menu_item_class_init (GtkPixmapMenuItemClass *klass) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkMenuItemClass *menu_item_class; - GtkContainerClass *container_class; - - object_class = (GtkObjectClass*) klass; - widget_class = (GtkWidgetClass*) klass; - menu_item_class = (GtkMenuItemClass*) klass; - container_class = (GtkContainerClass*) klass; - - parent_class = gtk_type_class (gtk_menu_item_get_type ()); - - widget_class->draw = gtk_pixmap_menu_item_draw; - widget_class->expose_event = gtk_pixmap_menu_item_expose; - widget_class->map = gtk_pixmap_menu_item_map; - widget_class->size_allocate = gtk_pixmap_menu_item_size_allocate; - widget_class->size_request = gtk_pixmap_menu_item_size_request; - - container_class->forall = gtk_pixmap_menu_item_forall; - container_class->remove = gtk_pixmap_menu_item_remove; - menu_item_class->toggle_size = INDENT; -} - -static void -gtk_pixmap_menu_item_init (GtkPixmapMenuItem *menu_item) -{ - menu_item->pixmap = NULL; -} - -static void -gtk_pixmap_menu_item_draw (GtkWidget *widget, - GdkRectangle *area) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_PIXMAP_MENU_ITEM (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_CLASS (parent_class)->draw) - (* GTK_WIDGET_CLASS (parent_class)->draw) (widget, area); - - if (GTK_WIDGET_DRAWABLE (widget) && - GTK_PIXMAP_MENU_ITEM(widget)->pixmap) { - gtk_widget_draw(GTK_WIDGET(GTK_PIXMAP_MENU_ITEM(widget)->pixmap),NULL); - } -} - -static gint -gtk_pixmap_menu_item_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_PIXMAP_MENU_ITEM (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_CLASS (parent_class)->expose_event) - (* GTK_WIDGET_CLASS (parent_class)->expose_event) (widget, event); - - if (GTK_WIDGET_DRAWABLE (widget) && - GTK_PIXMAP_MENU_ITEM(widget)->pixmap) { - gtk_widget_draw(GTK_WIDGET(GTK_PIXMAP_MENU_ITEM(widget)->pixmap),NULL); - } - - return FALSE; -} - -/** - * gtk_pixmap_menu_item_set_pixmap - * @menu_item: Pointer to the pixmap menu item - * @pixmap: Pointer to a pixmap widget - * - * Set the pixmap of the menu item. - * - **/ - -void -gtk_pixmap_menu_item_set_pixmap (GtkPixmapMenuItem *menu_item, - GtkWidget *pixmap) -{ - g_return_if_fail (menu_item != NULL); - g_return_if_fail (pixmap != NULL); - g_return_if_fail (GTK_IS_PIXMAP_MENU_ITEM (menu_item)); - g_return_if_fail (GTK_IS_WIDGET (pixmap)); - g_return_if_fail (menu_item->pixmap == NULL); - - gtk_widget_set_parent (pixmap, GTK_WIDGET (menu_item)); - menu_item->pixmap = pixmap; - - if (GTK_WIDGET_VISIBLE (pixmap->parent)) { - if (GTK_WIDGET_REALIZED (pixmap->parent) && - !GTK_WIDGET_REALIZED (pixmap)) - gtk_widget_realize (pixmap); - - if (GTK_WIDGET_MAPPED (pixmap->parent) && - !GTK_WIDGET_MAPPED (pixmap)) - gtk_widget_map (pixmap); - } - - if (GTK_WIDGET_VISIBLE (pixmap) && GTK_WIDGET_VISIBLE (menu_item)) - gtk_widget_queue_resize (pixmap); - -} - -static void -gtk_pixmap_menu_item_map (GtkWidget *widget) -{ - GtkPixmapMenuItem *menu_item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_PIXMAP_MENU_ITEM (widget)); - - menu_item = GTK_PIXMAP_MENU_ITEM(widget); - - GTK_WIDGET_CLASS(parent_class)->map(widget); - - if (menu_item->pixmap && - GTK_WIDGET_VISIBLE (menu_item->pixmap) && - !GTK_WIDGET_MAPPED (menu_item->pixmap)) - gtk_widget_map (menu_item->pixmap); -} - -static void -gtk_pixmap_menu_item_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkPixmapMenuItem *menu_item; - GtkAllocation child_allocation; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_PIXMAP_MENU_ITEM (widget)); - g_return_if_fail (allocation != NULL); - - menu_item = GTK_PIXMAP_MENU_ITEM(widget); - - if (menu_item->pixmap) { - child_allocation.x = GTK_CONTAINER (widget)->border_width+ - widget->style->klass->xthickness + 3; - child_allocation.y = GTK_CONTAINER (widget)->border_width+4; - child_allocation.width = INDENT-child_allocation.x; - child_allocation.height = allocation->height-2*child_allocation.y; - gtk_widget_size_allocate (menu_item->pixmap, &child_allocation); - } - - GTK_WIDGET_CLASS(parent_class)->size_allocate(widget,allocation); -} - -static void -gtk_pixmap_menu_item_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GtkPixmapMenuItem *menu_item; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_PIXMAP_MENU_ITEM (container)); - g_return_if_fail (callback != NULL); - - menu_item = GTK_PIXMAP_MENU_ITEM (container); - - if (menu_item->pixmap) - (* callback) (menu_item->pixmap, callback_data); - - GTK_CONTAINER_CLASS(parent_class)->forall(container,include_internals, - callback,callback_data); -} - -static void -gtk_pixmap_menu_item_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkPixmapMenuItem *menu_item; - GtkRequisition req; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MENU_ITEM (widget)); - g_return_if_fail (requisition != NULL); - - GTK_WIDGET_CLASS(parent_class)->size_request(widget,requisition); - - menu_item = GTK_PIXMAP_MENU_ITEM (widget); - - /* some widgets needs this */ - if (menu_item->pixmap) - gtk_widget_size_request(menu_item->pixmap,&req); - -} - -static void -gtk_pixmap_menu_item_remove (GtkContainer *container, - GtkWidget *child) -{ - GtkBin *bin; - gboolean widget_was_visible; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_PIXMAP_MENU_ITEM (container)); - g_return_if_fail (child != NULL); - g_return_if_fail (GTK_IS_WIDGET (child)); - - bin = GTK_BIN (container); - g_return_if_fail ((bin->child == child || - (GTK_PIXMAP_MENU_ITEM(container)->pixmap == child))); - - widget_was_visible = GTK_WIDGET_VISIBLE (child); - - gtk_widget_unparent (child); - if (bin->child == child) - bin->child = NULL; - else - GTK_PIXMAP_MENU_ITEM(container)->pixmap = NULL; - - if (widget_was_visible) - gtk_widget_queue_resize (GTK_WIDGET (container)); -} diff --git a/linux/pixmenu.h b/linux/pixmenu.h deleted file mode 100644 index f61449b..0000000 --- a/linux/pixmenu.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Author: Dietmar Maurer */ -/* Description: - - This widget works like a normal menu_item, but you can insert a - arbitrary widget (most often a pixmap widget), which is displayed - at the left side. The advantage is that indentation is handled the - same way as GTK does. - - (i.e if you create a menu with a gtk_check_menu_item, all normal - menu_items are automatically indented by GTK - so if you use a normal - menu_item to display pixmaps at the left side, the pixmaps will be - indented, which is not what you want. This widget solves the problem) - - */ - -#ifndef __GTK_MENU_PIXMAP_ITEM_H__ -#define __GTK_MENU_PIXMAP_ITEM_H__ - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#include -#include - - -#define GTK_TYPE_PIXMAP_MENU_ITEM (gtk_pixmap_menu_item_get_type ()) -#define GTK_PIXMAP_MENU_ITEM(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_PIXMAP_MENU_ITEM, GtkPixmapMenuItem)) -#define GTK_PIXMAP_MENU_ITEM_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_PIXMAP_MENU_ITEM, GtkPixmapMenuItemClass)) -#define GTK_IS_PIXMAP_MENU_ITEM(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_PIXMAP_MENU_ITEM)) -#define GTK_IS_PIXMAP_MENU_ITEM_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PIXMAP_MENU_ITEM)) - - -typedef struct _GtkPixmapMenuItem GtkPixmapMenuItem; -typedef struct _GtkPixmapMenuItemClass GtkPixmapMenuItemClass; - -struct _GtkPixmapMenuItem -{ - GtkMenuItem menu_item; - - GtkWidget *pixmap; -}; - -struct _GtkPixmapMenuItemClass -{ - GtkMenuItemClass parent_class; -}; - - -GtkType gtk_pixmap_menu_item_get_type (void); -GtkWidget* gtk_pixmap_menu_item_new (void); -void gtk_pixmap_menu_item_set_pixmap (GtkPixmapMenuItem *menu_item, - GtkWidget *pixmap); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __GTK_PIXMAP_MENU_ITEM_H__ */ diff --git a/linux/system.cpp b/linux/system.cpp index 736bea7..065b7a5 100644 --- a/linux/system.cpp +++ b/linux/system.cpp @@ -66,7 +66,7 @@ void* Sys_StartMemoryRender(int width, int height) render->glxcontext = pfnglXCreateContext (render->xdisplay, vi, NULL, True); render->pixmap = gdk_pixmap_new (NULL, width, height, render->visual->depth); - xpixmap = ((GdkPixmapPrivate*)render->pixmap)->xwindow; + xpixmap = (Pixmap)GDK_DRAWABLE_XID(render->pixmap); render->glxpixmap = pfnglXCreateGLXPixmap (render->xdisplay, vi, xpixmap); XFree(vi); @@ -144,6 +144,10 @@ char* strlwr(char* string) return string; } +int stricmp(const char* str1, const char* str2) +{ + return g_ascii_strcasecmp(str1, str2); +} @@ -575,7 +579,7 @@ void SystemUpdateRecentMenu (String names[4]) gtk_widget_show (item); gtk_widget_set_sensitive (item, TRUE); - gtk_widget_add_accelerator (item, "activate_item", accel, text[0], 0, (GtkAccelFlags)0); + gtk_widget_add_accelerator (item, "activate_item", accel, text[0], (GdkModifierType)0, (GtkAccelFlags)0); } } } diff --git a/linux/toolbar.cpp b/linux/toolbar.cpp index a3b18fa..43263ea 100644 --- a/linux/toolbar.cpp +++ b/linux/toolbar.cpp @@ -82,13 +82,15 @@ void create_toolbars(GtkWidget *window, GtkWidget *vbox) gtk_box_pack_start (GTK_BOX (vbox), main_toolbar.handle_box, FALSE, FALSE, 0); // if (user_rc.view_main_toolbar) gtk_widget_show (main_toolbar.handle_box); - main_toolbar.toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS); + main_toolbar.toolbar = gtk_toolbar_new (); + gtk_toolbar_set_orientation(GTK_TOOLBAR(main_toolbar.toolbar), GTK_ORIENTATION_HORIZONTAL); + gtk_toolbar_set_style(GTK_TOOLBAR(main_toolbar.toolbar), GTK_TOOLBAR_ICONS); // gtk_toolbar_set_style (GTK_TOOLBAR (main_toolbar.toolbar), user_rc.toolbar_style); gtk_container_add (GTK_CONTAINER (main_toolbar.handle_box), main_toolbar.toolbar); gtk_widget_show (main_toolbar.toolbar); gtk_container_border_width (GTK_CONTAINER (main_toolbar.toolbar), 2); - gtk_toolbar_set_button_relief (GTK_TOOLBAR (main_toolbar.toolbar), GTK_RELIEF_NONE); + // gtk_toolbar_set_button_relief (GTK_TOOLBAR (main_toolbar.toolbar), GTK_RELIEF_NONE); // gtk_toolbar_set_space_style (GTK_TOOLBAR (main_toolbar.toolbar), GTK_TOOLBAR_SPACE_LINE); // gtk_toolbar_set_space_size (GTK_TOOLBAR (main_toolbar.toolbar), 10); @@ -145,13 +147,15 @@ void create_toolbars(GtkWidget *window, GtkWidget *vbox) // if (user_rc.view_tool_toolbar) gtk_widget_show (tool_toolbar.handle_box); - tool_toolbar.toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS); + tool_toolbar.toolbar = gtk_toolbar_new(); + gtk_toolbar_set_orientation(GTK_TOOLBAR(tool_toolbar.toolbar), GTK_ORIENTATION_HORIZONTAL); + gtk_toolbar_set_style(GTK_TOOLBAR(tool_toolbar.toolbar), GTK_TOOLBAR_ICONS); // gtk_toolbar_set_style (GTK_TOOLBAR (tool_toolbar.toolbar), user_rc.toolbar_style); gtk_container_add (GTK_CONTAINER (tool_toolbar.handle_box), tool_toolbar.toolbar); gtk_widget_show (tool_toolbar.toolbar); gtk_container_border_width (GTK_CONTAINER (tool_toolbar.toolbar), 2); - gtk_toolbar_set_button_relief (GTK_TOOLBAR (tool_toolbar.toolbar), GTK_RELIEF_NONE); + // gtk_toolbar_set_button_relief (GTK_TOOLBAR (tool_toolbar.toolbar), GTK_RELIEF_NONE); tool_toolbar.brick = button = gtk_toolbar_append_element (GTK_TOOLBAR (tool_toolbar.toolbar), GTK_TOOLBAR_CHILD_RADIOBUTTON, NULL, "Piece", "Insert Piece", "", @@ -208,13 +212,15 @@ void create_toolbars(GtkWidget *window, GtkWidget *vbox) // if (user_rc.view_anim_toolbar) gtk_widget_show (anim_toolbar.handle_box); - anim_toolbar.toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS); + anim_toolbar.toolbar = gtk_toolbar_new(); + gtk_toolbar_set_orientation(GTK_TOOLBAR(anim_toolbar.toolbar), GTK_ORIENTATION_HORIZONTAL); + gtk_toolbar_set_style(GTK_TOOLBAR(anim_toolbar.toolbar), GTK_TOOLBAR_ICONS); // gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), user_rc.toolbar_style); gtk_container_add (GTK_CONTAINER (anim_toolbar.handle_box), anim_toolbar.toolbar); gtk_widget_show (anim_toolbar.toolbar); gtk_container_border_width (GTK_CONTAINER (anim_toolbar.toolbar), 2); - gtk_toolbar_set_button_relief (GTK_TOOLBAR (anim_toolbar.toolbar), GTK_RELIEF_NONE); + // gtk_toolbar_set_button_relief (GTK_TOOLBAR (anim_toolbar.toolbar), GTK_RELIEF_NONE); anim_toolbar.first = gtk_toolbar_append_item (GTK_TOOLBAR (anim_toolbar.toolbar), "First", "Go to the Start", "", new_pixmap (window, an_first), @@ -326,10 +332,11 @@ static void selection_made(GtkWidget *clist, gint row, gint column, GdkEventButt preview->SetCurrentPiece ((PieceInfo*)gtk_clist_get_row_data (GTK_CLIST (piecelist), row)); } -static void piececombo_popup_position (GtkMenu *menu, gint *x, gint *y, gpointer data) +static void piececombo_popup_position (GtkMenu *menu, gint *x, gint *y, gboolean* push, gpointer data) { gdk_window_get_origin (pieceentry->window, x, y); *y += pieceentry->allocation.height; + *push = true; } static void piececombo_popup (GtkWidget *widget, gpointer data) @@ -397,7 +404,7 @@ void piececombo_add (const char* str) static void piececombo_changed (GtkWidget *widget, gpointer data) { PiecesLibrary *pLib = project->GetPiecesLibrary (); - char* str; + const gchar* str; int i; str = gtk_entry_get_text (GTK_ENTRY (pieceentry)); @@ -673,7 +680,9 @@ GtkWidget* create_piecebar (GtkWidget *window, GLWindow *share) #include "pixmaps/pi-misc.xpm" #include "pixmaps/pi-tech.xpm" - grouptoolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS); + grouptoolbar = gtk_toolbar_new(); + gtk_toolbar_set_orientation(GTK_TOOLBAR(grouptoolbar), GTK_ORIENTATION_HORIZONTAL); + gtk_toolbar_set_style(GTK_TOOLBAR(grouptoolbar), GTK_TOOLBAR_ICONS); gtk_container_set_border_width (GTK_CONTAINER(grouptoolbar), 2); //gtk_toolbar_set_space_size (GTK_TOOLBAR(toolbar), 5); -- cgit v1.2.3