mirror of
https://github.com/leozide/leocad.git
synced 2026-07-28 04:07:11 +00:00
Updated LeoCAD to use GTK+ 2.0
This commit is contained in:
@@ -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
|
||||
|
||||
+1
-1
@@ -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];
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
|
||||
char* strupr(char* string);
|
||||
char* strlwr(char* string);
|
||||
int stricmp(const char* str1, const char* str2);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+7
-6
@@ -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
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:@'
|
||||
|
||||
+5
-5
@@ -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);
|
||||
|
||||
+44
-31
@@ -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
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
|
||||
+3
-3
@@ -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++)
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+12
-10
@@ -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));
|
||||
|
||||
@@ -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)
|
||||
|
||||
+2
-2
@@ -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)
|
||||
{
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+1
-6
@@ -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)
|
||||
|
||||
|
||||
-291
@@ -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));
|
||||
}
|
||||
@@ -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__ */
|
||||
+6
-2
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+18
-9
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user