[Top][All Lists]
[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Antiright-devel] antiright gtkshell/label.c xshell/arguments.c x...,
Jeffrey Bedard <=