From 28425bebaa13015ca5de912306f5e3b9e4dce9e2 Mon Sep 17 00:00:00 2001 From: Mandrake Date: Mon, 7 Feb 2000 19:53:40 +0000 Subject: [PATCH] wrong files SVN revision: 2016 --- Makefile | 168 +++++++++++++++++++++++++++++++ menus.c | 299 ++++++++++++------------------------------------------- menus.h | 70 +------------ viewer.c | 12 +++ viewer.h | 3 + 5 files changed, 248 insertions(+), 304 deletions(-) create mode 100644 Makefile create mode 100644 viewer.h diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ae63565 --- /dev/null +++ b/Makefile @@ -0,0 +1,168 @@ +# files in source that are needed +PACKAGE = efm-test +VERSION = 0.0.0 +SRCS = \ + viewer.c menus.c +HEADERS = \ + viewer.h menus.h +DATA = +EXTRAS = +BUILD = \ + +LIB_DIRS = \ + -L/usr/local/lib -L/usr/X11R6/lib -L/usr/X11/lib -L/usr/dt/lib +LIBS = \ + `gtk-config --libs` -lgdbm -lgdk_imlib +CFLAGS = \ + -O -g -D_GNU_SOURCE $(DEVFLAGS) +#CFLAGS = \ +# -O -g -W -Wall -Wno-unused -pedantic -pedantic-errors -ansi -D_GNU_SOURCE +OPTFLAGS = \ + -O6 -mpentium -mcpu=pentium -march=pentium -ffast-math -D_GNU_SOURCE +INCLUDES = \ + `gtk-config --cflags` -I.. + +BIN = e16keyedit + +# configurable stuff +BINARY_DESTINATION = /usr/local/enlightenment/bin +DATA_DESTINATION = /usr/local/enlightenment/share + +# commands to do things +INSTALL = install +MKDIR = mkdir +RM = rm -f +RMRF = rm -rf +TAR = tar +GZIP = gzip +CD = cd +MAKE = make +STRIP = strip +SED = sed +MAKEDEP = gcc -MM $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES) +#MAKEDEP = makedepend -f- -s'\# CUT' -- -Y $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES) -- + +# piece together variables +OBJS = $(SRCS:.c=.o) +DIST = $(PACKAGE)-$(VERSION) +BLD = Makefile $(BUILD) +FILES = $(SRCS) $(HEADERS) $(DATA) $(BLD) $(EXTRAS) + +all: e16keyedit + +# show help +help: + @echo + @echo +# @echo "To build and install type:" +# @echo " make [options] install" + @echo "To only build the binaries:" + @echo " make [options] e16keyedit" + @echo + @echo "Options for building (zero or more of the following):" + @echo " BINARY_DESTINATION=/path/to/binary/dir [default="$(BINARY_DESTINATION)"]" + @echo " DATA_DESTINATION=/path/to/data/dir [default="$(DATA_DESTINATION)"]" + @echo " CFLAGS=\"flags for compiler\" [default="$(CFLAGS)"]" + @echo " INCLUDES=\"include directiors compiler\" [default="$(INCLUDES)"]" + @echo " EXTRA_CFLAGS=\"extra flags for compiler\" [default="$(EXTRA_CFLAGS)"]" + @echo " EXTRA_INCLUDES=\"extra include directiors compiler\" [default="$(EXTRA_INCLUDES)"]" + @echo " LIBS=\"libraries to link to\" [default="$(LIBS)"]" + @echo " LIB_DIRS=\"directories to find libraries\" [default="$(LIB_DIRS)"]" + @echo " EXTRA_LIBS=\"extra libraries to link to\" [default="$(EXTRA_LIBS)"]" + @echo " EXTRA_LIB_DIRS=\"extra directories to find libraries\" [default="$(EXTRA_LIB_DIRS)"]" + @echo + @echo + +e16keyedit: e16keyedit + @echo + @echo + @echo "Don't bother with 'make install'. It's useless right now." + @echo "To run the editor and test stuff out try:" + @echo + @echo "./e16keyedit + @echo + +bigcompile: + $(CC) $(SRCS) -o e16keyedit $(OPTFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES) $(LIBS) $(EXTRA_LIBS) $(LIB_DIRS) $(EXTRA_LIB_DIRS) + $(STRIP) ./e16keyedit + +optimized: bigcompile + +# rules for source +e16keyedit: $(OBJS) + $(RM) $@ + $(CC) -o $@ $(OBJS) $(LIBS) $(EXTRA_LIBS) $(LIB_DIRS) $(EXTRA_LIB_DIRS) + +.c.o: + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES) -c $< -o $@ + +# clean out build crap +clean:: + $(RMRF) $(BIN) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut $(DIST) $(DIST).tar $(DIST).tar.gz ./=build ./=install "#"* + +# how to install +install:: e + @echo + @echo + @echo "You don't really want to do this. it doesn't work yet." + @echo + @echo +# for I in $(BIN); do $(INSTALL) -D -m 0775 $$I $(prefix)$(BINARY_DESTINATION)/$$I; done +# for I in $(DATA); do $(INSTALL) -D -m 0664 $$I $(prefix)$(DATA_DESTINATION)/$$I; done + +# how to make a dist tarball +dist:: + $(RMRF) $(DIST) $(DIST).tar $(DIST).tar.gz + $(MKDIR) $(DIST) + for I in $(FILES); do \ + if [ -x $$I ]; then $(INSTALL) -D -m 0775 $$I $(DIST)/$$I; else \ + if [ -f $$I ]; then $(INSTALL) -D -m 0664 $$I $(DIST)/$$I; else \ + if [ -d $$I ]; then $(INSTALL) -D -m 0555 -d $$I $(DIST)/$$I; fi; fi; fi; \ + done + $(TAR) -cf $(DIST).tar $(DIST) + $(GZIP) $(DIST).tar + $(RMRF) $(DIST) + +# how to check the dist +distcheck: dist + $(RMRF) ./=build ./=install + $(MKDIR) ./=build + $(MKDIR) ./=install + ($(CD) ./=build; $(GZIP) -d -c ../$(DIST).tar.gz | $(TAR) xvf -;) + ($(CD) ./=build/$(PACKAGE)-$(VERSION); \ + $(MAKE) prefix=../../=install install) + $(RMRF) ./=build ./=install $(DIST).tar.gz + +# Update dependency info +dep depend: + $(SED) '/^# CUT/,$$d' Makefile > Makefile.tmp + echo "# CUT" >> Makefile.tmp + $(MAKEDEP) $(SRCS) >> Makefile.tmp && mv Makefile.tmp Makefile + +# File dependencies. Do not remove the next line. sed needs it. +# CUT +batch.o: batch.c batch.h events.h x.h ev_filter.h str.h mem.h util.h \ + file.h +db.o: db.c db.h mem.h util.h str.h +efm_view.o: efm_view.c x.h str.h mem.h util.h file.h events.h ev_x.h \ + ev_filter.h efm_view.h db.h im_engine.h batch.h glob.h +ev_dispatch.o: ev_dispatch.c ev_dispatch.h events.h x.h str.h mem.h \ + util.h +ev_filter.o: ev_filter.c ev_filter.h events.h x.h str.h mem.h util.h +ev_ipc.o: ev_ipc.c events.h x.h ev_ipc.h str.h mem.h util.h file.h +ev_session.o: ev_session.c str.h mem.h util.h +ev_signal.o: ev_signal.c events.h x.h ev_signal.h str.h mem.h util.h +ev_x.o: ev_x.c events.h x.h ev_x.h str.h mem.h util.h +events.o: events.c events.h x.h ev_filter.h str.h mem.h util.h +file.o: file.c file.h mem.h str.h events.h x.h db.h glob.h ev_ipc.h \ + jobs.h util.h +glob.o: glob.c str.h glob.h +im_engine.o: im_engine.c util.h mem.h str.h x.h events.h ev_x.h \ + im_engine.h db.h +jobs.o: jobs.c jobs.h +main.o: main.c events.h x.h ev_signal.h ev_x.h ev_ipc.h ev_filter.h \ + batch.h efm_view.h file.h db.h im_engine.h mem.h util.h str.h +mem.o: mem.c mem.h +str.o: str.c str.h mem.h +util.o: util.c util.h mem.h str.h +x.o: x.c x.h mem.h str.h diff --git a/menus.c b/menus.c index 8da12e5..96e2f6d 100644 --- a/menus.c +++ b/menus.c @@ -1,253 +1,76 @@ -#include "first.h" -#include "x.h" -#include "str.h" -#include "mem.h" -#include "util.h" -#include -#include "events.h" -#include "ev_x.h" -#include "ev_filter.h" +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + #include "menus.h" +#include "viewer.h" -static E_Menu *open_menus = NULL; -static E_Menu_List *menus = NULL; -static void e_menu_idle_handler(void *data); -static void e_menu_event_handler(Eevent * ev); +GtkWidget * +CreateBarSubMenu(GtkWidget *menu, char *szName) { + GtkWidget *menuitem; + GtkWidget *submenu; + + menuitem = gtk_menu_item_new_with_label(szName); + gtk_menu_bar_append(GTK_MENU_BAR(menu), menuitem); + gtk_widget_show(menuitem); + submenu = gtk_menu_new(); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem),submenu); + + return submenu; -E_Menu * -e_menu_new(void) -{ - static char have_idle_handler = 0; - E_Menu *m; - E_Menu_List *l; - - - if (!have_idle_handler) - { - e_event_filter_handler_add(EV_MOUSE_MOVE, e_menu_event_handler); - e_event_filter_handler_add(EV_MOUSE_DOWN, e_menu_event_handler); - e_event_filter_handler_add(EV_MOUSE_UP, e_menu_event_handler); - e_event_filter_handler_add(EV_MOUSE_WHEEL, e_menu_event_handler); - e_event_filter_handler_add(EV_KEY_DOWN, e_menu_event_handler); - e_event_filter_handler_add(EV_KEY_UP, e_menu_event_handler); - e_event_filter_handler_add(EV_MOUSE_IN, e_menu_event_handler); - e_event_filter_handler_add(EV_MOUSE_OUT, e_menu_event_handler); - } - m = NEW(E_Menu, 1); - m->name = NULL; - m->win = e_window_override_new(0, 0, 0, 1, 1); - m->pmap = 0; - m->mask = 0; - m->x = 0; - m->y = 0; - m->w = 0; - m->h = 0; - m->visible = 0; - m->map_time = 0.0; - m->items = NULL; - m->next = NULL; - m->needs_redraw = 1; - l = NEW(E_Menu_List, 1); - l->menu = m; - l->next = menus; - menus = l; - return m; } +GtkWidget * +CreateRightAlignBarSubMenu(GtkWidget *menu, char *szName) { + GtkWidget *menuitem; + GtkWidget *submenu; + + menuitem = gtk_menu_item_new_with_label(szName); + gtk_menu_item_right_justify (GTK_MENU_ITEM (menuitem)); + gtk_menu_bar_append(GTK_MENU_BAR(menu), menuitem); + gtk_widget_show(menuitem); + submenu = gtk_menu_new(); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem),submenu); + + return submenu; -static void -e_menu_idle_handler(void *data) -{ - E_Menu_List *l; - - for (l = menus; l; l = l->next) - { - if (l->menu->needs_redraw) - e_menu_redraw(l->menu); - } } -static void -e_menu_event_handler(Eevent * ev) +GtkWidget * +CreateMenuItem(GtkWidget *menu, char *szName, char *szAccel, char *szTip, + GtkSignalFunc func, gpointer data) { - E_Menu_List *l; - - l = menus; - while (l) - { - E_Menu *m; + GtkWidget *menuitem; + + if(szName && strlen (szName)) { + menuitem = gtk_menu_item_new_with_label(szName); + gtk_signal_connect(GTK_OBJECT(menuitem),"activate", + GTK_SIGNAL_FUNC(func),data); + } else { + menuitem = gtk_menu_item_new(); + } + + gtk_menu_append(GTK_MENU(menu),menuitem); + gtk_widget_show(menuitem); - m = l->menu; - l = l->next; - e_menu_handle_event(m, ev); - } -} + if(szAccel && szAccel[0] == '^') { + gtk_widget_add_accelerator(menuitem,"activate",accel_group,szAccel[1], + GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + } -void -e_menu_handle_event(E_Menu *m, Eevent * ev) -{ - switch (ev->type) - { - case EV_MOUSE_MOVE: - { - Ev_Mouse_Move *e; - - e = ev->event; - } - break; - case EV_MOUSE_DOWN: - { - Ev_Mouse_Down *e; - - e = ev->event; - } - break; - case EV_MOUSE_UP: - { - Ev_Mouse_Up *e; - - e = ev->event; - } - break; - case EV_MOUSE_WHEEL: - { - Ev_Wheel *e; - - e = ev->event; - } - break; - case EV_KEY_DOWN: - { - Ev_Key_Down *e; - - e = ev->event; - } - break; - case EV_KEY_UP: - { - Ev_Key_Up *e; - - e = ev->event; - } - break; - case EV_MOUSE_IN: - { - Ev_Window_Enter *e; - - e = ev->event; - } - break; - case EV_MOUSE_OUT: - { - Ev_Window_Leave *e; - - e = ev->event; - } - break; - default: - break; - } -} + if(szTip && strlen(szTip)) { + gtk_tooltips_set_tip(tooltips,menuitem,szTip,NULL); + } -void -e_menu_show_at(E_Menu *m, int x, int y) -{ - m->visible = 1; - e_window_move(m->win, x, y); - e_menu_redraw(m); - e_window_show(m->win); -} + return menuitem; -void -e_menu_show_at_mouse_xy(E_Menu *m, int x, int y) -{ } - -void -e_menu_show_at_submen(E_Menu *m, E_Menu *parent_m, int entry) -{ -} - -void -e_menu_hide(E_Menu *m) -{ - if (!m->visible) - return; - m->visible = 0; - e_window_hide(m->win); - if (m->next) - e_menu_hide(m->next); -} - -void -e_menu_free(E_Menu *m) -{ - IF_FREE(m->name); - e_window_destroy(m->win); - if (m->pmap) - e_pixmap_free(m->pmap); - if (m->mask) - e_pixmap_free(m->mask); - FREE(m); -} - -E_Menu * -e_menu_find(char *name) -{ - E_Menu_List *l; - - for (l = menus; l; l = l->next) - { - if ((l->menu->name) && (e_string_cmp(l->menu->name, name))) - return l->menu; - } - return NULL; -} - -void -e_menu_add_entry(E_Menu *m, char *text, char *icon, char *submenu, int onoff, void (*func) (void *data), void *data, void (*func_free) (void *data)) -{ - E_Menu_Item *mi, *ptr; - - mi = NEW(E_Menu_Item, 1); - mi->state = MENU_ITEM_STATE_NORMAL; - mi->icon = e_string_dup(icon); - mi->text = e_string_dup(text); - mi->submenu = e_string_dup(submenu); - if (onoff) - MENU_ITEM_SET_OFF(mi); - mi->func = func; - mi->func_free = func_free; - mi->data = data; - mi->next = NULL; - - if (!m->items) - m->items = mi; - else - { - for (ptr = m->items; ptr; ptr = ptr->next) - { - if (!ptr->next) - { - ptr->next = mi; - break; - } - } - } - m->needs_redraw = 1; -} - -void -e_menu_del_entry(E_Menu *m, E_Menu_Item *mi) -{ -} - -void -e_menu_redraw(E_Menu *m) -{ - if (!m->needs_redraw) - return; - m->needs_redraw = 0; -} - diff --git a/menus.h b/menus.h index a93c609..a41912c 100644 --- a/menus.h +++ b/menus.h @@ -1,67 +1,5 @@ -#ifndef E_MENUS_H -#define E_MENUS_H 1 +GtkWidget *CreateBarSubMenu(GtkWidget *menu, char *szName); +GtkWidget *CreateRightAlignBarSubMenu(GtkWidget *menu, char *szName); +GtkWidget * CreateMenuItem(GtkWidget *menu, char *szName, char *szAccel, + char *szTip, GtkSignalFunc func, gpointer data); -typedef struct _e_menu E_Menu; -typedef struct _e_menu_item E_Menu_Item; -typedef struct _e_menu_list E_Menu_List; - -struct _e_menu_item -{ - int state; - char *icon; - char *text; - char *submenu; - void (*func) (void *data); - void (*func_free) (void *data); - void *data; - E_Menu_Item *next; -}; - -struct _e_menu -{ - char *name; - Window win; - Pixmap pmap, mask; - int x, y, w, h; - int visible; - double map_time; - E_Menu_Item *items; - E_Menu *next; - int needs_redraw; -}; - -struct _e_menu_list -{ - E_Menu *menu; - E_Menu_List *next; -}; - -#define MENU_ITEM_STATE_NORMAL 0x00 -#define MENU_ITEM_STATE_SELECTED 0x01 -#define MENU_ITEM_STATE_OFF 0x02 -#define MENU_ITEM_STATE_ON 0x04 - -#define MENU_ITEM_IS_BOOLEAN(item) \ -((item)->state & (MENU_ITEM_STATE_OFF | MENU_ITEM_STATE_ON)) -#define MENU_ITEM_SET_NORMAL(item) \ -(item)->state = (item)->state & (~MENU_ITEM_STATE_SELECTED) -#define MENU_ITEM_SET_SELECTED(item) \ -(item)->state = (item)->state | MENU_ITEM_STATE_SELECTED -#define MENU_ITEM_SET_OFF(item) \ -(item)->state = ((item)->state | MENU_ITEM_STATE_OFF) & (~MENU_ITEM_STATE_ON) -#define MENU_ITEM_SET_ON(item) \ -(item)->state = ((item)->state | MENU_ITEM_STATE_ON) & (~MENU_ITEM_STATE_OFF) - -E_Menu *e_menu_new(void); -void e_menu_handle_event(E_Menu *m, Eevent * ev); -void e_menu_show_at(E_Menu *m, int x, int y); -void e_menu_show_at_mouse_xy(E_Menu *m, int x, int y); -void e_menu_show_at_submen(E_Menu *m, E_Menu *parent_m, int entry); -void e_menu_hide(E_Menu *m); -void e_menu_free(E_Menu *m); -E_Menu *e_menu_find(char *name); -void e_menu_add_entry(E_Menu *m, char *text, char *icon, char *submenu, int onoff, void (*func) (void *data), void *data, void (*func_free) (void *data)); -void e_menu_del_entry(E_Menu *m, E_Menu_Item *mi); -void e_menu_redraw(E_Menu *m); - -#endif diff --git a/viewer.c b/viewer.c index 99541f1..108dea4 100644 --- a/viewer.c +++ b/viewer.c @@ -4,5 +4,17 @@ #include #include #include +#include "viewer.h" + +extern GtkTooltips *tooltips; +extern GtkAccelGroup *accel_group; + +int main(int argc, char *argv[]) +{ + GtkWidget *lister; + + gtk_set_locale(); + gtk_init(&argc, &argv); +} diff --git a/viewer.h b/viewer.h new file mode 100644 index 0000000..5510cc2 --- /dev/null +++ b/viewer.h @@ -0,0 +1,3 @@ +GtkTooltips *tooltips; +GtkAccelGroup *accel_group; +