summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleo2005-06-05 01:51:55 +0000
committerleo2005-06-05 01:51:55 +0000
commitf9f670643398aac6ad917505ccd76d2cf50230c7 (patch)
tree11e5c96a29e36d26a766d2d9c25d0dd83af7ebf3
parent583033b8bc46f46a039144c0d8fa97d406bc64ee (diff)
Updated LeoCAD to use GTK+ 2.0
git-svn-id: http://svn.leocad.org/trunk@403 c7d43263-9d01-0410-8a33-9dba5d9f93d6
-rw-r--r--Makefile7
-rwxr-xr-xcommon/array.cpp2
-rw-r--r--common/defines.h1
-rw-r--r--common/module.mk13
-rw-r--r--common/preview.cpp2
-rw-r--r--config.mk16
-rwxr-xr-xdepend.sh15
-rw-r--r--linux/basewnd.cpp10
-rw-r--r--linux/dialogs.cpp75
-rwxr-xr-xlinux/dlgfile.cpp2
-rwxr-xr-xlinux/dlgpiece.cpp6
-rw-r--r--linux/glwindow.cpp2
-rwxr-xr-xlinux/gtkmisc.cpp22
-rw-r--r--linux/gtktools.cpp3
-rw-r--r--linux/main.cpp4
-rw-r--r--linux/menu.cpp2
-rw-r--r--linux/module.mk7
-rw-r--r--linux/pixmenu.c291
-rw-r--r--linux/pixmenu.h59
-rw-r--r--linux/system.cpp8
-rw-r--r--linux/toolbar.cpp27
21 files changed, 124 insertions, 450 deletions
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<T>::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 <dm@vlsivie.tuwien.ac.at> */
-
-#include "pixmenu.h"
-#include <gtk/gtkaccellabel.h>
-#include <gtk/gtksignal.h>
-
-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 <dm@vlsivie.tuwien.ac.at> */
-/* 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 <gtk/gtkpixmap.h>
-#include <gtk/gtkmenuitem.h>
-
-
-#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);