antiright-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Antiright-devel] antiright gtkshell/label.c xshell/arguments.c x...


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright gtkshell/label.c xshell/arguments.c x...
Date: Mon, 20 Aug 2007 16:12:10 +0000

CVSROOT:        /sources/antiright
Module name:    antiright
Changes by:     Jeffrey Bedard <jefbed> 07/08/20 16:12:09

Modified files:
        gtkshell       : label.c 
        xshell         : arguments.c arguments.h button.c decoration.c 
                         decoration.h events.c events.h font.c font.h 
                         text.c widget.c xshell.c xshell_struct.h 

Log message:
        XShell improvements.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/label.c?cvsroot=antiright&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/arguments.c?cvsroot=antiright&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/arguments.h?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/button.c?cvsroot=antiright&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/decoration.c?cvsroot=antiright&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/decoration.h?cvsroot=antiright&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/events.c?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/events.h?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/font.c?cvsroot=antiright&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/font.h?cvsroot=antiright&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/text.c?cvsroot=antiright&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/widget.c?cvsroot=antiright&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/xshell.c?cvsroot=antiright&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/xshell_struct.h?cvsroot=antiright&r1=1.1&r2=1.2

Patches:
Index: gtkshell/label.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/label.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- gtkshell/label.c    11 Jun 2007 21:32:42 -0000      1.23
+++ gtkshell/label.c    20 Aug 2007 16:12:08 -0000      1.24
@@ -30,6 +30,7 @@
        GLS(single_line_mode, FALSE);
        GSH_FLAG(GSH_HORIZONTAL_LABELS) ? 
                GLS(angle, 90.0) : GLS(line_wrap, TRUE);
+       GLS(max_width_chars, 120);
        gsh_widget_set_font(label, NULL);
 }
 

Index: xshell/arguments.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/arguments.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- xshell/arguments.c  7 Aug 2007 16:25:23 -0000       1.7
+++ xshell/arguments.c  20 Aug 2007 16:12:09 -0000      1.8
@@ -42,13 +42,10 @@
        {
        case 'l': /* Label.  */
                (*counter)++;
-               xshell_button_new(xsh, xsh->gui.widgets, 
-                       argv[*counter]);
-               xsh->gui.last_widget->events.button_press
-                       =xsh->gui.last_widget
-                               ->events.button_press
-                                       =NULL;
+               xshell_button_new(xsh, xsh->gui.widgets, argv[*counter]);
+               xsh->gui.last_widget->events.button_press=NULL;
                break;
+
        case 'r': /* Add a column.  */
                xsh->gui.layout.column_count++;
                xsh->gui.layout.row_count=0;

Index: xshell/arguments.h
===================================================================
RCS file: /sources/antiright/antiright/xshell/arguments.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- xshell/arguments.h  22 Jul 2007 21:54:10 -0000      1.3
+++ xshell/arguments.h  20 Aug 2007 16:12:09 -0000      1.4
@@ -23,6 +23,8 @@
 #ifndef XSH_ARGS_H
 #define XSH_ARGS_H
 void
+xsh_show_usage_and_exit();
+void
 xsh_parse_arguments(XShell * xsh, int argc, char ** argv);
 #endif 
 

Index: xshell/button.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/button.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- xshell/button.c     7 Aug 2007 16:25:23 -0000       1.5
+++ xshell/button.c     20 Aug 2007 16:12:09 -0000      1.6
@@ -27,17 +27,19 @@
 {
        XSHButtonData * data;
        char * label;
+       XShellGUI * gui = &(xsh->gui);
+       Display * dpy = gui->display;
+       GC gc = xsh->gui.gc;
 
        data=(XSHButtonData *)button->data;
        label=data->label;
-       xsh_set_font(xsh, "-*-fixed-*-*-*-*-14-*-*-*-*-*-*-*");
+       XSH_SET_COLOR(dpy, gc, 0, 0, 0);
        XDrawString(xsh->gui.display, button->window, xsh->gui.gc,
                5, 12, label, strlen(label));
 #if 0
 {
                        unsigned int width, height;
                        GC gc = xsh->gui.gc;
-                       Display * dpy=xsh->gui.display;
                        Pixmap pixmap;
                        XReadBitmapFile(dpy, button->window,
                                "bitmap.xbm", &width, &height,
@@ -56,6 +58,8 @@
 #ifdef XSH_DECORATE
        if(button->events.button_press)
                xsh_decorate(button, XSH_DECOR_OUT);
+       else
+               xsh_decorate(button, XSH_DECOR_FLAT);
 #endif /* XSH_DECORATE */
        draw_label((XShell *)(button->xsh), button);
 }

Index: xshell/decoration.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/decoration.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- xshell/decoration.c 7 Aug 2007 16:25:24 -0000       1.7
+++ xshell/decoration.c 20 Aug 2007 16:12:09 -0000      1.8
@@ -124,6 +124,7 @@
                XFillRectangle(display, window, gc, 
                        0, 0, geometry.width, geometry.height);
 #endif /* XSH_USE_GRADIENT */
+               if(order != 0)
                draw_frame(display, window, gc, order!=1, geometry);
        }
        /* Free GC data.  */

Index: xshell/decoration.h
===================================================================
RCS file: /sources/antiright/antiright/xshell/decoration.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- xshell/decoration.h 7 Aug 2007 16:25:24 -0000       1.6
+++ xshell/decoration.h 20 Aug 2007 16:12:09 -0000      1.7
@@ -26,6 +26,7 @@
 #define XSH_DECOR_H
 
 #define XSH_DECOR_IN 1
+#define XSH_DECOR_FLAT 0
 #define XSH_DECOR_OUT -1
 
 #define XSH_SETUP_GC(display, window)\

Index: xshell/events.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/events.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- xshell/events.c     22 Jul 2007 21:54:10 -0000      1.3
+++ xshell/events.c     20 Aug 2007 16:12:09 -0000      1.4
@@ -42,21 +42,12 @@
 static void
 select_event(XWidget * iter, XEvent * event)
 {
-#ifdef DEBUG_EVENTS
-       XMSG("select event");
-#endif
-       iter->event=event;
+       iter->events.event=event;
        switch(event->type)
        {
        case Expose:
                if(event->xexpose.count<1)
-               {
-#ifdef DEBUG_EVENTS
-                       fprintf(stderr, "xsh_expose_count: %d\n", 
-                               ++xsh_expose_count);    
-#endif /* DEBUG_EVENTS */
                        XSH_EVENT(iter, expose);
-               }
                break;
        case KeyPress:
                XSH_EVENT(iter, key_press);
@@ -67,15 +58,7 @@
        case ButtonRelease:
                XSH_EVENT(iter, button_release);
                break;
-       case ConfigureRequest:
-#ifdef DEBUG_EVENTS
-       fprintf(stderr, "xsh_configure_count: %d\n", ++xsh_configure_count);    
-#endif /* DEBUG_EVENTS */
-       /* Unreachable.  */
-/*             XSH_EVENT(iter, configure);*/
-               break;
        };
-
 }
 
 static void
@@ -97,15 +80,6 @@
        }
 }
 
-void
-xsh_nullify_widget_events(XWidget * widget)
-{
-       widget->events.expose=NULL;
-       widget->events.key_press=NULL;
-       widget->events.button_press=NULL;
-       widget->events.button_release=NULL;
-       widget->events.configure=NULL;
-}
 
 void
 xsh_event_loop(XShell * xsh)

Index: xshell/events.h
===================================================================
RCS file: /sources/antiright/antiright/xshell/events.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- xshell/events.h     22 Jul 2007 21:54:10 -0000      1.3
+++ xshell/events.h     20 Aug 2007 16:12:09 -0000      1.4
@@ -23,10 +23,19 @@
 
 #ifndef XSH_EVENTS_H
 #define XSH_EVENTS_H
-void
-xsh_nullify_widget_events(XWidget * widget);
+
+#define XSH_NULLIFY_WIDGET_EVENTS(widget)\
+{\
+       widget->events.expose=NULL;\
+       widget->events.key_press=NULL;\
+       widget->events.button_press=NULL;\
+       widget->events.button_release=NULL;\
+       widget->events.configure=NULL;\
+}
+
 void
 xsh_event_loop(XShell * xsh);
+
 #endif
 
 

Index: xshell/font.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/font.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- xshell/font.c       7 Aug 2007 16:25:24 -0000       1.1
+++ xshell/font.c       20 Aug 2007 16:12:09 -0000      1.2
@@ -33,3 +33,13 @@
        XChangeGC(gui->display, gui->gc, GCFont, &values);
 }
 
+void
+xsh_free_font(XShell * xsh)
+{
+       XGCValues values;
+       Display * dpy = xsh->gui.display;
+
+       XGetGCValues(dpy, xsh->gui.gc, GCFont, &values);
+       XUnloadFont(dpy, values.font);
+}
+

Index: xshell/font.h
===================================================================
RCS file: /sources/antiright/antiright/xshell/font.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- xshell/font.h       7 Aug 2007 16:25:24 -0000       1.1
+++ xshell/font.h       20 Aug 2007 16:12:09 -0000      1.2
@@ -26,5 +26,8 @@
 void
 xsh_set_font(XShell * xsh, const char * name);
 
+void
+xsh_free_font(XShell * xsh);
+
 #endif /* not XSH_FONT_H */
 

Index: xshell/text.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/text.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- xshell/text.c       7 Aug 2007 16:25:24 -0000       1.4
+++ xshell/text.c       20 Aug 2007 16:12:09 -0000      1.5
@@ -30,7 +30,6 @@
        char * text=data->label;
        unsigned int i, length=strlen(text), line=0, columns=80,
                font_height=18, font_width=8;
-       XShellGUILayout * layout=&(gui->layout);
 
        XSH_SET_COLOR(gui->display, gui->gc, 0xff, 0xff, 0xff);
        xsh_set_font(xsh, "-*-fixed-medium-r-*-*-14-*-*-*-*-*-*-*");

Index: xshell/widget.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/widget.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- xshell/widget.c     23 Jul 2007 01:58:46 -0000      1.2
+++ xshell/widget.c     20 Aug 2007 16:12:09 -0000      1.3
@@ -42,7 +42,7 @@
 #define NULLIFY_WIDGET_MEMBERS(widget)\
        widget->data=NULL;\
        widget->next=NULL;\
-       xsh_nullify_widget_events(widget);\
+       XSH_NULLIFY_WIDGET_EVENTS(widget);\
        
 
 #define SETUP_WIDGET_GEOMETRY(widget, width, height, x, y)\
@@ -60,42 +60,39 @@
 }
 
 static void
+setup_events(XShell * xsh, XWidget * widget)
+{
+       long event_mask;
+
+       event_mask = ButtonPressMask | ButtonReleaseMask
+               | ExposureMask | KeyPressMask;
+       if(widget->window == xsh->gui.widgets->window)
+               event_mask |= StructureNotifyMask; 
+       XSelectInput(xsh->gui.display, widget->window, event_mask);
+}
+
+static void
 setup_widget_window(XShell * xsh, XWidget * widget, XWidget * parent)
 {
-       Display * dpy;
+       XShellGUI * gui = &(xsh->gui);
+       Display * dpy=gui->display;
        XWindowAttributes * geometry;
                
-       XMSG("create widget window");
-       dpy=xsh->gui.display;
        geometry=&(widget->geometry);
        widget->window=XCreateSimpleWindow(dpy, 
                parent ? parent->window : DefaultRootWindow(dpy), 
                geometry->x, geometry->y, 
                geometry->width, geometry->height, 
-#ifdef DEBUG
-               1,
-#else /* not DEBUG */
 #ifdef XSH_DECORATE
                0,
 #else /* not XSH_DECORATE */
                1,
 #endif /* XSH_DECORATE */
-#endif /* DEBUG */
-#ifdef XSH_DECORATE
                BlackPixel(dpy, DefaultScreen(dpy)),
-#else /* not XSH_DECORATE */
-               WhitePixel(dpy, DefaultScreen(dpy)),
-#endif /* XSH_DECORATE */
-               BlackPixel(dpy, DefaultScreen(dpy)));
-       {
-               long event_mask;
-
-               event_mask = ButtonPressMask | ButtonReleaseMask
-                       | ExposureMask | KeyPressMask;
-               if(widget->window == xsh->gui.widgets->window)
-                       event_mask |= StructureNotifyMask; 
-               XSelectInput(dpy, widget->window, event_mask);
-       }
+               WhitePixel(dpy, DefaultScreen(dpy)));
+       if(!parent)
+               gui->last_toplevel=widget;
+       setup_events(xsh, widget);
 }
 
 void

Index: xshell/xshell.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/xshell.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- xshell/xshell.c     7 Aug 2007 16:25:24 -0000       1.5
+++ xshell/xshell.c     20 Aug 2007 16:12:09 -0000      1.6
@@ -61,48 +61,57 @@
 
        dpy=xsh->gui.display;
        delete_widgets(xsh->gui.widgets);
+       xsh_free_font(xsh);
        XFreeGC(dpy, xsh->gui.gc);
        XCloseDisplay(dpy);
 }
 
 static void
-show_main_window(Display * dpy, XShell * xsh)
+show_main_window(XShell * xsh)
 {
-       Window toplevel;
+       XShellGUI * gui = &(xsh->gui);
+       Window toplevel=gui->widgets->window;
+       Display * dpy = gui->display;
 
        toplevel=xsh->gui.widgets->window;
        XMapSubwindows(dpy, toplevel);
        XMapWindow(dpy, toplevel);
 }
 
+static void
+setup_main_window(XShell * xsh)
+{
+       XShellGUI * gui = &(xsh->gui);
+
+       /* Main window.  */
+       xshell_XWidget_new(xsh, NULL, 0, 0, 100, 16);
+       gui->gc=XSH_SETUP_GC(gui->display, gui->widgets->window);
+       XSH_SET_COLOR(gui->display, gui->gc, 0xff, 0xff, 0xff);
+       xsh_set_font(xsh, "-misc-fixed-medium-r-*-*-14-*-*-*-*-*-*-*");
+}
+
+#define APPLY_TOPLEVEL_GEOMETRY(xsh)\
+       XMoveWindow(xsh.gui.display, xsh.gui.widgets->window,\
+               xsh.gui.widgets->geometry.x,\
+               xsh.gui.widgets->geometry.y);\
 
 int
 main(int argc, char ** argv)
 {
        XShell xsh;
-       Display * dpy;
 
        if(argc<=1)
-       {
-               
-               /* This should be split to function and kept with argument
-                  handler code.  */
-       }
+               xsh_show_usage_and_exit();
        SETUP_XSHELL(xsh);
-       dpy=xsh.gui.display=XOpenDisplay(NULL);
-       /* Main window.  */
-       xshell_XWidget_new(&xsh, NULL, 0, 0, 100, 16);
-       xsh.gui.gc=XSH_SETUP_GC(dpy, xsh.gui.widgets->window);
+       xsh.gui.display=XOpenDisplay(NULL);
+       setup_main_window(&xsh);
 #ifdef XSH_USE_GRADIENT
        xsh_setup_gradients(&xsh);
 #endif /* XSH_USE_GRADIENT */
        xsh_parse_arguments(&xsh, argc, argv);
-       show_main_window(dpy, &xsh);
+       show_main_window(&xsh);
        xsh_layout_widgets(&xsh);
-       XMoveWindow(dpy,
-               xsh.gui.widgets->window,
-               xsh.gui.widgets->geometry.x, 
-               xsh.gui.widgets->geometry.y);
+       APPLY_TOPLEVEL_GEOMETRY(xsh);
        xsh_event_loop(&xsh);
        cleanup(&xsh);
 

Index: xshell/xshell_struct.h
===================================================================
RCS file: /sources/antiright/antiright/xshell/xshell_struct.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- xshell/xshell_struct.h      7 Aug 2007 16:25:24 -0000       1.1
+++ xshell/xshell_struct.h      20 Aug 2007 16:12:09 -0000      1.2
@@ -28,6 +28,7 @@
        Window window;
        XWindowAttributes geometry;
        struct {
+               XEvent * event;
                void (*expose)(struct XWidget *);
                void (*button_press)(struct XWidget *);
                void (*button_release)(struct XWidget *);
@@ -37,7 +38,6 @@
        void * data;
        void * xsh; /* Ensure root access.  */
        struct XWidget *next;
-       XEvent * event;
 };
 
 typedef struct XWidget XWidget;
@@ -67,6 +67,7 @@
        Display * display;
        XWidget * widgets;
        XWidget * last_widget;
+       XWidget * last_toplevel;
        unsigned int widget_count;
        GC gc;
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]