Jan Schaumann <[EMAIL PROTECTED]> wrote:
> > Um. I may be completely confused (quite possible--probability rather
> > high considering nobody else has thought of this), but isn't this
> > already possible by using the slit in a horizontal manner and docking
> > the mentioned apps? It seems to me that you'd end up with a horizontal
> > bar that looks and feels exactly like a custom-constructed toolbar. And
> > I understand that the missing piece for you seems to be bbdate not doing
> > strftime....
>
> D'uh! The reason I forgot about this is that I used to have licq in the
> slit, which then makes bbmail (being a lot smaller in size than the
> licq-dockapp-thiny) look ugly in the slit. But just those in the slit
> gets me what I want (except for strftime, but that should be easy enough
> to include). Thanks.
Just for completeness' sake, attached are two patches:
one to remove the toolbar alltogether from BB, and one to allow bbdate
to use strftime-format (so that it accepts "bbdate.strftimeFormat: %k:%M
%Y-%m-%d %a", for example, in its config-file).
I think I really dig this :) With my three bbapps snug in the slit, I
can place them around the screen as I like.
See http://www.netmeister.org/screenshots/bb_no_toolbar.png
-Jan
--
finger [EMAIL PROTECTED]
diff -burN bbdate-0.2.1-orig/LinkedList.hh bbdate-0.2.1/LinkedList.hh
--- bbdate-0.2.1-orig/LinkedList.hh Mon May 3 16:24:53 1999
+++ bbdate-0.2.1/LinkedList.hh Mon Jan 21 13:13:18 2002
@@ -63,7 +63,7 @@
int elements;
__llist_node *_first, *_last;
- friend __llist_iterator;
+ friend class __llist_iterator;
protected:
diff -burN bbdate-0.2.1-orig/bbdate.cc bbdate-0.2.1/bbdate.cc
--- bbdate-0.2.1-orig/bbdate.cc Mon May 3 16:24:53 1999
+++ bbdate-0.2.1/bbdate.cc Mon Jan 21 13:15:38 2002
@@ -70,9 +70,15 @@
unsigned long create_mask = CWBackPixmap|
CWOverrideRedirect |CWCursor|CWEventMask;
- frame.width=XTextWidth(resource->label.font," mm/dd/yy ",
+ if (resource->report.strftimeFormat)
+ frame.width=XTextWidth(resource->label.font,
+resource->report.strftimeFormat,
+
+strlen(resource->report.strftimeFormat)) +
+ resource->frame.bevelWidth*4;
+ else
+ frame.width=XTextWidth(resource->label.font, " mm/dd/yy ",
strlen(" mm/dd/yy ")) +
resource->frame.bevelWidth*4;
+
label.width=frame.width-2*resource->frame.bevelWidth;
frame.height=resource->label.font->ascent+
resource->label.font->descent+4*resource->frame.bevelWidth;
@@ -200,12 +206,23 @@
void ToolWindow::Redraw()
{
- char date[12];
+ time_t tmp;
+ struct tm *tt;
+
+ char date[1024];
+ if ((tmp = time(NULL)) != -1)
+ {
+ tt = localtime(&tmp);
+ if (! ((resource->report.strftimeFormat) &&
+ (strftime(date, 1024, resource->report.strftimeFormat, tt))))
+ {
if (resource->report.euStyle)
sprintf(date, " %02d/%02d/%02d ", day, month, year);
else
sprintf(date, " %02d/%02d/%02d ", month, day, year);
+ }
+ }
XClearWindow(dpy, labelwin);
XDrawString(dpy, labelwin, frameGC, resource->frame.bevelWidth,
diff -burN bbdate-0.2.1-orig/resource.cc bbdate-0.2.1/resource.cc
--- bbdate-0.2.1-orig/resource.cc Sat May 8 06:55:26 1999
+++ bbdate-0.2.1/resource.cc Mon Jan 21 13:13:18 2002
@@ -22,6 +22,7 @@
#include "resource.hh"
#include "blackboxstyle.hh"
+
Resource::Resource(ToolWindow *toolwindow):
BaseResource(toolwindow)
{
@@ -307,5 +308,16 @@
else
report.euStyle = False;
+ if (XrmGetResource(resource_db, "bbdate.strftimeFormat",
+ "Bbdate.strftimeFormat", &value_type, &value))
+ {
+ report.euStyle = False;
+ report.strftimeFormat = (char *) malloc((value.size + 1) *
+sizeof(char));
+ memset(report.strftimeFormat, '\0', value.size + 1);
+ strncpy(report.strftimeFormat, value.addr, value.size);
+ }
+ else
+ report.strftimeFormat = NULL;
+
/* what to show.resources */
}
diff -burN bbdate-0.2.1-orig/resource.hh bbdate-0.2.1/resource.hh
--- bbdate-0.2.1-orig/resource.hh Mon May 3 16:24:53 1999
+++ bbdate-0.2.1/resource.hh Mon Jan 21 13:13:18 2002
@@ -69,6 +69,7 @@
bool auto_raise;
unsigned int check_delay;
bool euStyle;
+ char *strftimeFormat;
};
diff -burN blackbox-0.62.0-orig/Makefile.in blackbox-0.62.0/Makefile.in
--- blackbox-0.62.0-orig/Makefile.in Sat Jan 19 14:10:47 2002
+++ blackbox-0.62.0/Makefile.in Mon Jan 21 12:09:15 2002
@@ -71,6 +71,7 @@
PACKAGE = @PACKAGE@
SHAPE = @SHAPE@
SLIT = @SLIT@
+TOOLBAR = @TOOLBAR@
TIMEDCACHE = @TIMEDCACHE@
VERSION = @VERSION@
gencat_cmd = @gencat_cmd@
diff -burN blackbox-0.62.0-orig/configure blackbox-0.62.0/configure
--- blackbox-0.62.0-orig/configure Sat Jan 19 14:10:52 2002
+++ blackbox-0.62.0/configure Mon Jan 21 12:09:15 2002
@@ -18,6 +18,8 @@
ac_help="$ac_help
--enable-slit include code for the Slit [default=yes]"
ac_help="$ac_help
+ --enable-toolbar include code for the Toolbar [default=yes]"
+ac_help="$ac_help
--enable-newspec include code for the new WM Spec (DOES NOTHING)
[default=no]"
ac_help="$ac_help
@@ -2750,6 +2752,23 @@
fi
+TOOLBAR=""
+echo $ac_n "checking whether to include the Toolbar""... $ac_c" 1>&6
+echo "configure:2738: checking whether to include the Toolbar" >&5
+# Check whether --enable-toolbar or --disable-toolbar was given.
+if test "${enable_toolbar+set}" = set; then
+ enableval="$enable_toolbar"
+ if test x$enableval = "xyes"; then
+ echo "$ac_t""yes" 1>&6
+ TOOLBAR="-DTOOLBAR"
+ else
+ echo "$ac_t""no" 1>&6
+ fi
+else
+ echo "$ac_t""yes" 1>&6
+ TOOLBAR="-DTOOLBAR"
+
+fi
NEWWMSPEC=""
@@ -3207,6 +3226,7 @@
s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
s%@SHAPE@%$SHAPE%g
s%@SLIT@%$SLIT%g
+s%@TOOLBAR@%$TOOLBAR%g
s%@NEWWMSPEC@%$NEWWMSPEC%g
s%@INTERLACE@%$INTERLACE%g
s%@ORDEREDPSEUDO@%$ORDEREDPSEUDO%g
diff -burN blackbox-0.62.0-orig/configure.in blackbox-0.62.0/configure.in
--- blackbox-0.62.0-orig/configure.in Sat Jan 19 12:22:40 2002
+++ blackbox-0.62.0/configure.in Mon Jan 21 12:09:15 2002
@@ -100,6 +100,23 @@
)
AC_SUBST(SLIT)
+dnl Check for the Toolbar
+TOOLBAR=""
+AC_MSG_CHECKING([whether to include the Toolbar])
+AC_ARG_ENABLE(
+ toolbar, [ --enable-toolbar include code for the Toolbar [default=yes]],
+ if test x$enableval = "xyes"; then
+ AC_MSG_RESULT([yes])
+ TOOLBAR="-DTOOLBAR"
+ else
+ AC_MSG_RESULT([no])
+ fi,
+ AC_MSG_RESULT([yes])
+ TOOLBAR="-DTOOLBAR"
+)
+AC_SUBST(TOOLBAR)
+
+
dnl Check for the new WM Spec
NEWWMSPEC=""
AC_MSG_CHECKING([whether to include the new WM Spec (DOES NOTHING)])
diff -burN blackbox-0.62.0-orig/src/Configmenu.cc blackbox-0.62.0/src/Configmenu.cc
--- blackbox-0.62.0-orig/src/Configmenu.cc Sun Dec 30 01:54:05 2001
+++ blackbox-0.62.0/src/Configmenu.cc Mon Jan 21 12:09:15 2002
@@ -32,7 +32,9 @@
#include "i18n.hh"
#include "Configmenu.hh"
+#ifdef TOOLBAR
#include "Toolbar.hh"
+#endif // TOOLBAR
#include "Window.hh"
#include "Screen.hh"
@@ -166,9 +168,12 @@
configmenu->screen->saveAutoRaise(False);
if (! configmenu->screen->getBlackbox()->getFocusedWindow())
+#ifdef TOOLBAR
XSetInputFocus(configmenu->screen->getBlackbox()->getXDisplay(),
configmenu->screen->getToolbar()->getWindowID(),
- RevertToParent, CurrentTime);
+ RevertToParent, CurrentTime)
+#endif // TOOLBAR
+ ;
else
XSetInputFocus(configmenu->screen->getBlackbox()->getXDisplay(),
configmenu->screen->getBlackbox()->
diff -burN blackbox-0.62.0-orig/src/Makefile.in blackbox-0.62.0/src/Makefile.in
--- blackbox-0.62.0-orig/src/Makefile.in Sat Jan 19 14:10:48 2002
+++ blackbox-0.62.0/src/Makefile.in Mon Jan 21 12:13:52 2002
@@ -90,6 +90,7 @@
PACKAGE = @PACKAGE@
SHAPE = @SHAPE@
SLIT = @SLIT@
+TOOLBAR = @TOOLBAR@
TIMEDCACHE = @TIMEDCACHE@
VERSION = @VERSION@
gencat_cmd = @gencat_cmd@
@@ -98,7 +99,7 @@
DEFAULT_MENU = $(pkgdatadir)/menu
DEFAULT_STYLE = $(pkgdatadir)/styles/Results
-CPPFLAGS = @CPPFLAGS@ @SHAPE@ @SLIT@ @INTERLACE@ @ORDEREDPSEUDO@ @DEBUG@ @NEWWMSPEC@
@NLS@ @TIMEDCACHE@ -DLOCALEPATH=\"$(pkgdatadir)/nls\"
-DDEFAULTMENU=\"$(DEFAULT_MENU)\" -DDEFAULTSTYLE=\"$(DEFAULT_STYLE)\"
+CPPFLAGS = @CPPFLAGS@ @SHAPE@ @SLIT@ @TOOLBAR@ @INTERLACE@ @ORDEREDPSEUDO@ @DEBUG@
+@NEWWMSPEC@ @NLS@ @TIMEDCACHE@ -DLOCALEPATH=\"$(pkgdatadir)/nls\"
+-DDEFAULTMENU=\"$(DEFAULT_MENU)\" -DDEFAULTSTYLE=\"$(DEFAULT_STYLE)\"
bin_PROGRAMS = blackbox
diff -burN blackbox-0.62.0-orig/src/Screen.cc blackbox-0.62.0/src/Screen.cc
--- blackbox-0.62.0-orig/src/Screen.cc Sat Jan 12 06:13:09 2002
+++ blackbox-0.62.0/src/Screen.cc Mon Jan 21 12:09:15 2002
@@ -44,8 +44,12 @@
#include "Slit.hh"
#endif // SLIT
-#include "Rootmenu.hh"
+#ifdef TOOLBAR
#include "Toolbar.hh"
+#endif // TOOLBAR
+
+
+#include "Rootmenu.hh"
#include "Window.hh"
#include "Workspace.hh"
#include "Workspacemenu.hh"
@@ -203,8 +207,15 @@
resource.stylerc = 0;
resource.mstyle.t_fontset = resource.mstyle.f_fontset =
- resource.tstyle.fontset = resource.wstyle.fontset = (XFontSet) 0;
- resource.mstyle.t_font = resource.mstyle.f_font = resource.tstyle.font =
+#ifdef TOOLBAR
+ resource.tstyle.fontset =
+#endif // TOOLBAR
+ resource.wstyle.fontset = (XFontSet) 0;
+
+ resource.mstyle.t_font = resource.mstyle.f_font =
+#ifdef TOOLBAR
+ resource.tstyle.font =
+#endif // TOOLBAR
resource.wstyle.font = (XFontStruct *) 0;
#ifdef HAVE_STRFTIME
@@ -307,6 +318,7 @@
XCreateGC(getBaseDisplay()->getXDisplay(), getRootWindow(),
gc_value_mask, &gcv);
+#ifdef TOOLBAR
gcv.foreground = resource.tstyle.l_text.getPixel();
if (resource.tstyle.font)
gcv.font = resource.tstyle.font->fid;
@@ -328,6 +340,7 @@
resource.tstyle.b_pic_gc =
XCreateGC(getBaseDisplay()->getXDisplay(), getRootWindow(),
gc_value_mask, &gcv);
+#endif // TOOLBAR
const char *s = i18n->getMessage(ScreenSet, ScreenPositionLength,
"0: 0000 x 0: 0000");
@@ -411,7 +424,9 @@
current_workspace = workspacesList->first();
workspacemenu->setItemSelected(2, True);
+#ifdef TOOLBAR
toolbar = new Toolbar(this);
+#endif // TOOLBAR
#ifdef SLIT
slit = new Slit(this);
@@ -475,9 +490,11 @@
}
}
+#ifdef TOOLBAR
if (! resource.sloppy_focus)
XSetInputFocus(getBaseDisplay()->getXDisplay(), toolbar->getWindowID(),
RevertToParent, CurrentTime);
+#endif // TOOLBAR
XFree(children);
XFlush(getBaseDisplay()->getXDisplay());
@@ -521,7 +538,10 @@
delete slit;
#endif // SLIT
+#ifdef TOOLBAR
delete toolbar;
+#endif // TOOLBAR
+
delete image_control;
delete workspacesList;
@@ -536,8 +556,10 @@
XFreeFontSet(getBaseDisplay()->getXDisplay(), resource.mstyle.t_fontset);
if (resource.mstyle.f_fontset)
XFreeFontSet(getBaseDisplay()->getXDisplay(), resource.mstyle.f_fontset);
+#ifdef TOOLBAR
if (resource.tstyle.fontset)
XFreeFontSet(getBaseDisplay()->getXDisplay(), resource.tstyle.fontset);
+#endif // TOOLBAR
if (resource.wstyle.font)
XFreeFont(getBaseDisplay()->getXDisplay(), resource.wstyle.font);
@@ -545,8 +567,10 @@
XFreeFont(getBaseDisplay()->getXDisplay(), resource.mstyle.t_font);
if (resource.mstyle.f_font)
XFreeFont(getBaseDisplay()->getXDisplay(), resource.mstyle.f_font);
+#ifdef TOOLBAR
if (resource.tstyle.font)
XFreeFont(getBaseDisplay()->getXDisplay(), resource.tstyle.font);
+#endif // TOOLBAR
XFreeGC(getBaseDisplay()->getXDisplay(), opGC);
@@ -570,6 +594,7 @@
XFreeGC(getBaseDisplay()->getXDisplay(),
resource.mstyle.hilite_gc);
+#ifdef TOOLBAR
XFreeGC(getBaseDisplay()->getXDisplay(),
resource.tstyle.l_text_gc);
XFreeGC(getBaseDisplay()->getXDisplay(),
@@ -578,6 +603,7 @@
resource.tstyle.c_text_gc);
XFreeGC(getBaseDisplay()->getXDisplay(),
resource.tstyle.b_pic_gc);
+#endif // TOOLBAR
}
void BScreen::readDatabaseTexture(char *rname, char *rclass,
@@ -882,6 +908,7 @@
XChangeGC(getBaseDisplay()->getXDisplay(), resource.mstyle.hilite_gc,
gc_value_mask, &gcv);
+#ifdef TOOLBAR
gcv.foreground = resource.tstyle.l_text.getPixel();
if (resource.tstyle.font)
gcv.font = resource.tstyle.font->fid;
@@ -899,6 +926,7 @@
gcv.foreground = resource.tstyle.b_pic.getPixel();
XChangeGC(getBaseDisplay()->getXDisplay(), resource.tstyle.b_pic_gc,
gc_value_mask, &gcv);
+#endif // TOOLBAR
const char *s = i18n->getMessage(ScreenSet, ScreenPositionLength,
"0: 0000 x 0: 0000");
@@ -966,7 +994,9 @@
configmenu->reconfigure();
+#ifdef TOOLBAR
toolbar->reconfigure();
+#endif // TOOLBAR
#ifdef SLIT
slit->reconfigure();
@@ -1012,8 +1042,10 @@
if (i18n->multibyte()) {
readDatabaseFontSet("window.font", "Window.Font",
&resource.wstyle.fontset);
+#ifdef TOOLBAR
readDatabaseFontSet("toolbar.font", "Toolbar.Font",
&resource.tstyle.fontset);
+#endif // TOOLBAR
readDatabaseFontSet("menu.title.font", "Menu.Title.Font",
&resource.mstyle.t_fontset);
readDatabaseFontSet("menu.frame.font", "Menu.Frame.Font",
@@ -1023,8 +1055,10 @@
XExtentsOfFontSet(resource.mstyle.t_fontset);
resource.mstyle.f_fontset_extents =
XExtentsOfFontSet(resource.mstyle.f_fontset);
+#ifdef TOOLBAR
resource.tstyle.fontset_extents =
XExtentsOfFontSet(resource.tstyle.fontset);
+#endif // TOOLBAR
resource.wstyle.fontset_extents =
XExtentsOfFontSet(resource.wstyle.fontset);
} else {
@@ -1034,8 +1068,10 @@
&resource.mstyle.t_font);
readDatabaseFont("menu.frame.font", "Menu.Frame.Font",
&resource.mstyle.f_font);
+#ifdef TOOLBAR
readDatabaseFont("toolbar.font", "Toolbar.Font",
&resource.tstyle.font);
+#endif // TOOLBAR
}
// load window config
@@ -1125,6 +1161,8 @@
} else {
resource.wstyle.justify = BScreen::LeftJustify;
}
+
+#ifdef TOOLBAR
// load toolbar config
readDatabaseTexture("toolbar", "Toolbar",
&resource.tstyle.toolbar,
@@ -1179,6 +1217,8 @@
} else {
resource.tstyle.justify = BScreen::LeftJustify;
}
+#endif // TOOLBAR
+
// load menu config
readDatabaseTexture("menu.title", "Menu.Title",
&resource.mstyle.title,
@@ -1356,7 +1396,9 @@
wkspc->getWorkspaceID() + 2);
workspacemenu->update();
+#ifdef TOOLBAR
toolbar->reconfigure();
+#endif // TOOLBAR
updateNetizenWorkspaceCount();
@@ -1381,7 +1423,9 @@
workspacesList->remove(wkspc);
delete wkspc;
+#ifdef TOOLBAR
toolbar->reconfigure();
+#endif // TOOLBAR
updateNetizenWorkspaceCount();
@@ -1409,7 +1453,9 @@
workspacemenu->setItemSelected(current_workspace->getWorkspaceID() + 2,
True);
+#ifdef TOOLBAR
toolbar->redrawWorkspaceLabel(True);
+#endif // TOOLBAR
current_workspace->showAll();
@@ -1538,17 +1584,21 @@
*(session_stack + i++) = slit->getMenu()->getWindowID();
#endif // SLIT
+#ifdef TOOLBAR
*(session_stack + i++) =
toolbar->getMenu()->getPlacementmenu()->getWindowID();
*(session_stack + i++) = toolbar->getMenu()->getWindowID();
+#endif // TOOLBAR
LinkedListIterator<Rootmenu> rit(rootmenuList);
for (Rootmenu *tmp = rit.current(); tmp; rit++, tmp = rit.current())
*(session_stack + i++) = tmp->getWindowID();
*(session_stack + i++) = rootmenu->getWindowID();
+#ifdef TOOLBAR
if (toolbar->isOnTop())
*(session_stack + i++) = toolbar->getWindowID();
+#endif // TOOLBAR
#ifdef SLIT
if (slit->isOnTop())
diff -burN blackbox-0.62.0-orig/src/Screen.hh blackbox-0.62.0/src/Screen.hh
--- blackbox-0.62.0-orig/src/Screen.hh Tue Jan 8 23:51:02 2002
+++ blackbox-0.62.0/src/Screen.hh Mon Jan 21 12:09:15 2002
@@ -69,6 +69,7 @@
int justify;
};
+#ifdef TOOLBAR
struct ToolbarStyle {
BColor l_text, w_text, c_text, b_pic;
BTexture toolbar, label, window, button, pressed, clock;
@@ -80,6 +81,7 @@
int justify;
};
+#endif // TOOLBAR
struct MenuStyle {
BColor t_text, f_text, h_text, d_text;
@@ -115,7 +117,10 @@
Slit *slit;
#endif // SLIT
+#ifdef TOOLBAR
Toolbar *toolbar;
+#endif // TOOLBAR
+
Workspace *current_workspace;
Workspacemenu *workspacemenu;
@@ -127,17 +132,24 @@
struct resource {
WindowStyle wstyle;
+#ifdef TOOLBAR
ToolbarStyle tstyle;
+#endif // TOOLBAR
MenuStyle mstyle;
- Bool toolbar_on_top, toolbar_auto_hide, sloppy_focus, auto_raise,
+#ifdef TOOLBAR
+ Bool toolbar_on_top, toolbar_auto_hide;
+ int toolbar_placement, toolbar_width_percent;
+#endif // TOOLBAR
+
+ Bool sloppy_focus, auto_raise,
auto_edge_balance, image_dither, ordered_dither, opaque_move, full_max,
focus_new, focus_last;
BColor border_color;
XrmDatabase stylerc;
- int workspaces, toolbar_placement, toolbar_width_percent, placement_policy,
- edge_snap_threshold, row_direction, col_direction;
+ int workspaces, placement_policy, edge_snap_threshold, row_direction,
+ col_direction;
#ifdef SLIT
Bool slit_on_top, slit_auto_hide;
@@ -174,10 +186,6 @@
BScreen(Blackbox *, int);
~BScreen(void);
- inline const Bool &isToolbarOnTop(void) const
- { return resource.toolbar_on_top; }
- inline const Bool &doToolbarAutoHide(void) const
- { return resource.toolbar_auto_hide; }
inline const Bool &isSloppyFocus(void) const
{ return resource.sloppy_focus; }
inline const Bool &isRootColormapInstalled(void) const
@@ -215,7 +223,23 @@
inline void saveSlitAutoHide(Bool t) { resource.slit_auto_hide = t; }
#endif // SLIT
+#ifdef TOOLBAR
+ inline const Bool &isToolbarOnTop(void) const
+ { return resource.toolbar_on_top; }
+ inline const Bool &doToolbarAutoHide(void) const
+ { return resource.toolbar_auto_hide; }
inline Toolbar *getToolbar(void) { return toolbar; }
+ inline const int &getToolbarPlacement(void) const
+ { return resource.toolbar_placement; }
+ inline const int &getToolbarWidthPercent(void) const
+ { return resource.toolbar_width_percent; }
+ inline void saveToolbarOnTop(Bool r) { resource.toolbar_on_top = r; }
+ inline void saveToolbarAutoHide(Bool r) { resource.toolbar_auto_hide = r; }
+ inline void saveToolbarWidthPercent(int w)
+ { resource.toolbar_width_percent = w; }
+ inline void saveToolbarPlacement(int p) { resource.toolbar_placement = p; }
+ inline ToolbarStyle *getToolbarStyle(void) { return &resource.tstyle; }
+#endif // TOOLBAR
inline Workspace *getWorkspace(int w) { return workspacesList->find(w); }
inline Workspace *getCurrentWorkspace(void) { return current_workspace; }
@@ -237,10 +261,7 @@
inline const int getIconCount(void) { return iconList->count(); }
inline const int &getNumberOfWorkspaces(void) const
{ return resource.workspaces; }
- inline const int &getToolbarPlacement(void) const
- { return resource.toolbar_placement; }
- inline const int &getToolbarWidthPercent(void) const
- { return resource.toolbar_width_percent; }
+
inline const int &getPlacementPolicy(void) const
{ return resource.placement_policy; }
inline const int &getEdgeSnapThreshold(void) const
@@ -254,11 +275,6 @@
inline void saveSloppyFocus(Bool s) { resource.sloppy_focus = s; }
inline void saveAutoRaise(Bool a) { resource.auto_raise = a; }
inline void saveWorkspaces(int w) { resource.workspaces = w; }
- inline void saveToolbarOnTop(Bool r) { resource.toolbar_on_top = r; }
- inline void saveToolbarAutoHide(Bool r) { resource.toolbar_auto_hide = r; }
- inline void saveToolbarWidthPercent(int w)
- { resource.toolbar_width_percent = w; }
- inline void saveToolbarPlacement(int p) { resource.toolbar_placement = p; }
inline void savePlacementPolicy(int p) { resource.placement_policy = p; }
inline void saveRowPlacementDirection(int d) { resource.row_direction = d; }
inline void saveColPlacementDirection(int d) { resource.col_direction = d; }
@@ -283,7 +299,6 @@
inline WindowStyle *getWindowStyle(void) { return &resource.wstyle; }
inline MenuStyle *getMenuStyle(void) { return &resource.mstyle; }
- inline ToolbarStyle *getToolbarStyle(void) { return &resource.tstyle; }
BlackboxWindow *getIcon(int);
diff -burN blackbox-0.62.0-orig/src/Slit.cc blackbox-0.62.0/src/Slit.cc
--- blackbox-0.62.0-orig/src/Slit.cc Thu Jan 10 04:47:50 2002
+++ blackbox-0.62.0/src/Slit.cc Mon Jan 21 12:09:15 2002
@@ -39,7 +39,10 @@
#include "Image.hh"
#include "Screen.hh"
#include "Slit.hh"
+
+#ifdef TOOLBAR
#include "Toolbar.hh"
+#endif // TOOLBAR
Slit::Slit(BScreen *scr) {
@@ -272,7 +275,10 @@
Pixmap tmp = frame.pixmap;
BImageControl *image_ctrl = screen->getImageControl();
+
+#ifdef TOOLBAR
BTexture *texture = &(screen->getToolbarStyle()->toolbar);
+
if (texture->getTexture() == (BImage_Flat | BImage_Solid)) {
frame.pixmap = None;
XSetWindowBackground(display, frame.window,
@@ -282,6 +288,7 @@
texture);
XSetWindowBackgroundPixmap(display, frame.window, frame.pixmap);
}
+#endif // TOOLBAR
if (tmp) image_ctrl->removeImage(tmp);
XClearWindow(display, frame.window);
@@ -465,10 +472,14 @@
break;
}
+#ifdef TOOLBAR
Toolbar *tbar = screen->getToolbar();
+#endif // TOOLBAR
+
int sw = frame.width + (screen->getBorderWidth() * 2),
- sh = frame.height + (screen->getBorderWidth() * 2),
- tw = tbar->getWidth() + screen->getBorderWidth(),
+ sh = frame.height + (screen->getBorderWidth() * 2);
+#ifdef TOOLBAR
+ int tw = tbar->getWidth() + screen->getBorderWidth(),
th = tbar->getHeight() + screen->getBorderWidth();
if (tbar->getX() < frame.x + sw && tbar->getX() + tw > frame.x &&
@@ -487,6 +498,7 @@
frame.y_hidden = frame.y;
}
}
+#endif // TOOLBAR
if (hidden)
XMoveResizeWindow(display, frame.window, frame.x_hidden,
diff -burN blackbox-0.62.0-orig/src/Toolbar.cc blackbox-0.62.0/src/Toolbar.cc
--- blackbox-0.62.0-orig/src/Toolbar.cc Sat Jan 19 11:03:54 2002
+++ blackbox-0.62.0/src/Toolbar.cc Mon Jan 21 12:09:15 2002
@@ -30,6 +30,8 @@
# include "../config.h"
#endif // HAVE_CONFIG_H
+#ifdef TOOLBAR
+
#include "i18n.hh"
#include "blackbox.hh"
#include "Clientmenu.hh"
@@ -1221,3 +1223,5 @@
toolbarmenu->toolbar->screen->getSlit()->reposition();
#endif // SLIT
}
+
+#endif // TOOLBAR
diff -burN blackbox-0.62.0-orig/src/Window.cc blackbox-0.62.0/src/Window.cc
--- blackbox-0.62.0-orig/src/Window.cc Sat Jan 19 11:06:30 2002
+++ blackbox-0.62.0/src/Window.cc Mon Jan 21 12:09:15 2002
@@ -47,7 +47,11 @@
#include "blackbox.hh"
#include "Iconmenu.hh"
#include "Screen.hh"
+
+#ifdef TOOLBAR
#include "Toolbar.hh"
+#endif // TOOLBAR
+
#include "Window.hh"
#include "Windowmenu.hh"
#include "Workspace.hh"
@@ -1522,8 +1526,10 @@
dh -= client.base_height;
dh -= frame.y_border;
+#ifdef TOOLBAR
if (! screen->doFullMax())
dh -= screen->getToolbar()->getExposedHeight() + frame.border_w;
+#endif // TOOLBAR
if (dw < client.min_width) dw = client.min_width;
if (dh < client.min_height) dh = client.min_height;
@@ -1545,6 +1551,8 @@
if (screen->doFullMax()) {
dy += ((screen->getHeight() - dh) / 2) - frame.border_w;
} else {
+
+#ifdef TOOLBAR
dy += (((screen->getHeight() - screen->getToolbar()->getExposedHeight())
- dh) / 2) - frame.border_w;
@@ -1556,6 +1564,7 @@
frame.border_w;
break;
}
+#endif // TOOLBAR
}
switch(button) {
@@ -2668,6 +2677,7 @@
dx = screen->getWidth() - frame.snap_w;
int dtty, dbby, dty, dby;
+#ifdef TOOLBAR
switch (screen->getToolbarPlacement()) {
case Toolbar::TopLeft:
case Toolbar::TopCenter:
@@ -2682,6 +2692,7 @@
dbby = screen->getToolbar()->getY();
break;
}
+#endif // TOOLBAR
dty = dy - dtty;
dby = dbby - (dy + frame.snap_h);
diff -burN blackbox-0.62.0-orig/src/Windowmenu.hh blackbox-0.62.0/src/Windowmenu.hh
--- blackbox-0.62.0-orig/src/Windowmenu.hh Sun Dec 30 02:00:58 2001
+++ blackbox-0.62.0/src/Windowmenu.hh Mon Jan 21 12:09:15 2002
@@ -31,7 +31,10 @@
class Blackbox;
class BlackboxWindow;
+
+#ifdef TOOLBAR
class Toolbar;
+#endif // TOOLBAR
class Windowmenu : public Basemenu {
private:
diff -burN blackbox-0.62.0-orig/src/Workspace.cc blackbox-0.62.0/src/Workspace.cc
--- blackbox-0.62.0-orig/src/Workspace.cc Wed Jan 16 02:37:47 2002
+++ blackbox-0.62.0/src/Workspace.cc Mon Jan 21 12:09:15 2002
@@ -37,7 +37,11 @@
#include "blackbox.hh"
#include "Clientmenu.hh"
#include "Screen.hh"
+
+#ifdef TOOLBAR
#include "Toolbar.hh"
+#endif // TOOLBAR
+
#include "Window.hh"
#include "Workspace.hh"
#include "Windowmenu.hh"
@@ -117,9 +121,11 @@
BlackboxWindow *top = stackingList->first();
if (! top || ! top->setInputFocus()) {
screen->getBlackbox()->setFocusedWindow((BlackboxWindow *) 0);
+#ifdef TOOLBAR
XSetInputFocus(screen->getBlackbox()->getXDisplay(),
screen->getToolbar()->getWindowID(),
RevertToParent, CurrentTime);
+#endif // TOOLBAR
}
}
}
@@ -280,7 +286,10 @@
void Workspace::update(void) {
clientmenu->update();
+
+#ifdef TOOLBAR
screen->getToolbar()->redrawWindowLabel(True);
+#endif // TOOLBAR
}
@@ -335,12 +344,16 @@
slit_h = screen->getSlit()->getHeight() +
(screen->getBorderWidth() * 4),
#endif // SLIT
+
+#ifdef TOOLBAR
toolbar_x = screen->getToolbar()->getX() - screen->getBorderWidth(),
toolbar_y = screen->getToolbar()->getY() - screen->getBorderWidth(),
toolbar_w = screen->getToolbar()->getWidth() +
(screen->getBorderWidth() * 4),
toolbar_h = screen->getToolbar()->getHeight() +
(screen->getBorderWidth() * 4),
+#endif // TOOLBAR
+
start_pos = 0,
change_y =
((screen->getColPlacementDirection() == BScreen::TopBottom) ? 1 : -1),
@@ -383,11 +396,15 @@
}
}
- if (placed &&
+ if (placed
+#ifdef TOOLBAR
+ &&
(toolbar_x < test_x + win_w &&
toolbar_x + toolbar_w > test_x &&
toolbar_y < test_y + win_h &&
toolbar_y + toolbar_h > test_y)
+#endif // TOOLBAR
+
#ifdef SLIT
||
(slit_x < test_x + win_w &&
@@ -445,11 +462,14 @@
}
}
- if (placed &&
+ if (placed
+#ifdef TOOLBAR
+ &&
(toolbar_x < test_x + win_w &&
toolbar_x + toolbar_w > test_x &&
toolbar_y < test_y + win_h &&
toolbar_y + toolbar_h > test_y)
+#endif // TOOLBAR
#ifdef SLIT
||
(slit_x < test_x + win_w &&
diff -burN blackbox-0.62.0-orig/src/Workspacemenu.cc
blackbox-0.62.0/src/Workspacemenu.cc
--- blackbox-0.62.0-orig/src/Workspacemenu.cc Fri Dec 28 17:41:27 2001
+++ blackbox-0.62.0/src/Workspacemenu.cc Mon Jan 21 12:09:15 2002
@@ -33,7 +33,9 @@
#include "i18n.hh"
#include "blackbox.hh"
#include "Screen.hh"
+#ifdef TOOLBAR
#include "Toolbar.hh"
+#endif // TOOLBAR
#include "Workspacemenu.hh"
#include "Workspace.hh"
diff -burN blackbox-0.62.0-orig/src/Workspacemenu.hh
blackbox-0.62.0/src/Workspacemenu.hh
--- blackbox-0.62.0-orig/src/Workspacemenu.hh Sun Dec 30 02:01:54 2001
+++ blackbox-0.62.0/src/Workspacemenu.hh Mon Jan 21 12:09:15 2002
@@ -27,7 +27,9 @@
// forward declaration
class Workspacemenu;
+#ifdef TOOLBAR
class Toolbar;
+#endif // TOOLBAR
class Workspacemenu : public Basemenu {
private:
diff -burN blackbox-0.62.0-orig/src/blackbox.cc blackbox-0.62.0/src/blackbox.cc
--- blackbox-0.62.0-orig/src/blackbox.cc Sat Jan 12 06:17:26 2002
+++ blackbox-0.62.0/src/blackbox.cc Mon Jan 21 12:09:15 2002
@@ -51,7 +51,9 @@
#include "Slit.hh"
#endif // SLIT
+#ifdef TOOLBAR
#include "Toolbar.hh"
+#endif // TOOLBAR
#include "Window.hh"
#include "Workspace.hh"
#include "Workspacemenu.hh"
@@ -174,7 +176,9 @@
slitSearchList = new LinkedList<SlitSearch>;
#endif // SLIT
+#ifdef TOOLBAR
toolbarSearchList = new LinkedList<ToolbarSearch>;
+#endif // TOOLBAR
groupSearchList = new LinkedList<WindowSearch>;
menuTimestamps = new LinkedList<MenuTimestamp>;
@@ -244,7 +248,9 @@
delete windowSearchList;
delete menuSearchList;
+#ifdef TOOLBAR
delete toolbarSearchList;
+#endif // TOOLBAR
delete groupSearchList;
#ifdef SLIT
@@ -276,7 +282,9 @@
Slit *slit = (Slit *) 0;
#endif // SLIT
+#ifdef TOOLBAR
Toolbar *tbar = (Toolbar *) 0;
+#endif // TOOLBAR
if ((win = searchWindow(e->xbutton.window))) {
win->buttonPressEvent(&e->xbutton);
@@ -291,8 +299,11 @@
slit->buttonPressEvent(&e->xbutton);
#endif // SLIT
+#ifdef TOOLBAR
} else if ((tbar = searchToolbar(e->xbutton.window))) {
tbar->buttonPressEvent(&e->xbutton);
+#endif // TOOLBAR
+
} else {
LinkedListIterator<BScreen> it(screenList);
BScreen *screen = it.current();
@@ -375,14 +386,18 @@
BlackboxWindow *win = (BlackboxWindow *) 0;
Basemenu *menu = (Basemenu *) 0;
+#ifdef TOOLBAR
Toolbar *tbar = (Toolbar *) 0;
+#endif // TOOLBAR
if ((win = searchWindow(e->xbutton.window)))
win->buttonReleaseEvent(&e->xbutton);
else if ((menu = searchMenu(e->xbutton.window)))
menu->buttonReleaseEvent(&e->xbutton);
+#ifdef TOOLBAR
else if ((tbar = searchToolbar(e->xbutton.window)))
tbar->buttonReleaseEvent(&e->xbutton);
+#endif // TOOLBAR
break;
}
@@ -531,7 +546,9 @@
BScreen *screen = (BScreen *) 0;
BlackboxWindow *win = (BlackboxWindow *) 0;
Basemenu *menu = (Basemenu *) 0;
+#ifdef TOOLBAR
Toolbar *tbar = (Toolbar *) 0;
+#endif // TOOLBAR
#ifdef SLIT
Slit *slit = (Slit *) 0;
@@ -561,8 +578,10 @@
}
} else if ((menu = searchMenu(e->xcrossing.window))) {
menu->enterNotifyEvent(&e->xcrossing);
+#ifdef TOOLBAR
} else if ((tbar = searchToolbar(e->xcrossing.window))) {
tbar->enterNotifyEvent(&e->xcrossing);
+#endif // TOOLBAR
#ifdef SLIT
} else if ((slit = searchSlit(e->xcrossing.window))) {
slit->enterNotifyEvent(&e->xcrossing);
@@ -576,7 +595,9 @@
BlackboxWindow *win = (BlackboxWindow *) 0;
Basemenu *menu = (Basemenu *) 0;
+#ifdef TOOLBAR
Toolbar *tbar = (Toolbar *) 0;
+#endif // TOOLBAR
#ifdef SLIT
Slit *slit = (Slit *) 0;
@@ -586,8 +607,10 @@
menu->leaveNotifyEvent(&e->xcrossing);
else if ((win = searchWindow(e->xcrossing.window)))
win->installColormap(False);
+#ifdef TOOLBAR
else if ((tbar = searchToolbar(e->xcrossing.window)))
tbar->leaveNotifyEvent(&e->xcrossing);
+#endif // TOOLBAR
#ifdef SLIT
else if ((slit = searchSlit(e->xcrossing.window)))
slit->leaveNotifyEvent(&e->xcrossing);
@@ -599,23 +622,29 @@
case Expose: {
BlackboxWindow *win = (BlackboxWindow *) 0;
Basemenu *menu = (Basemenu *) 0;
+#ifdef TOOLBAR
Toolbar *tbar = (Toolbar *) 0;
+#endif // TOOLBAR
if ((win = searchWindow(e->xexpose.window)))
win->exposeEvent(&e->xexpose);
else if ((menu = searchMenu(e->xexpose.window)))
menu->exposeEvent(&e->xexpose);
+#ifdef TOOLBAR
else if ((tbar = searchToolbar(e->xexpose.window)))
tbar->exposeEvent(&e->xexpose);
+#endif // TOOLBAR
break;
}
case KeyPress: {
+#ifdef TOOLBAR
Toolbar *tbar = searchToolbar(e->xkey.window);
if (tbar && tbar->isEditing())
tbar->keyPressEvent(&e->xkey);
+#endif // TOOLBAR
break;
}
@@ -794,6 +823,7 @@
}
+#ifdef TOOLBAR
Toolbar *Blackbox::searchToolbar(Window window) {
LinkedListIterator<ToolbarSearch> it(toolbarSearchList);
@@ -804,6 +834,7 @@
return (Toolbar *) 0;
}
+#endif // TOOLBAR
#ifdef SLIT
@@ -835,9 +866,11 @@
}
+#ifdef TOOLBAR
void Blackbox::saveToolbarSearch(Window window, Toolbar *data) {
toolbarSearchList->insert(new ToolbarSearch(window, data));
}
+#endif // TOOLBAR
#ifdef SLIT
@@ -883,6 +916,7 @@
}
+#ifdef TOOLBAR
void Blackbox::removeToolbarSearch(Window window) {
LinkedListIterator<ToolbarSearch> it(toolbarSearchList);
for (ToolbarSearch *tmp = it.current(); tmp; it++, tmp = it.current()) {
@@ -893,6 +927,7 @@
}
}
}
+#endif // TOOLBAR
#ifdef SLIT
@@ -1075,6 +1110,7 @@
screen->getCount());
XrmPutLineResource(&new_blackboxrc, rc_string);
+#ifdef TOOLBAR
sprintf(rc_string, "session.screen%d.toolbar.onTop: %s", screen_number,
((screen->getToolbar()->isOnTop()) ? "True" : "False"));
XrmPutLineResource(&new_blackboxrc, rc_string);
@@ -1098,6 +1134,7 @@
sprintf(rc_string, "session.screen%d.toolbar.placement: %s", screen_number,
toolbar_placement);
XrmPutLineResource(&new_blackboxrc, rc_string);
+#endif // TOOLBAR
load_rc(screen);
@@ -1125,9 +1162,11 @@
screen->getEdgeSnapThreshold());
XrmPutLineResource(&new_blackboxrc, rc_string);
+#ifdef TOOLBAR
sprintf(rc_string, "session.screen%d.toolbar.widthPercent: %d",
screen_number, screen->getToolbarWidthPercent());
XrmPutLineResource(&new_blackboxrc, rc_string);
+#endif // TOOLBAR
// write out the users workspace names
int i, len = 0;
@@ -1354,6 +1393,7 @@
} else {
screen->saveWorkspaces(1);
}
+#ifdef TOOLBAR
sprintf(name_lookup, "session.screen%d.toolbar.widthPercent",
screen_number);
sprintf(class_lookup, "Session.Screen%d.Toolbar.WidthPercent",
@@ -1389,6 +1429,7 @@
} else {
screen->saveToolbarPlacement(Toolbar::BottomCenter);
}
+#endif // TOOLBAR
screen->removeWorkspaceNames();
sprintf(name_lookup, "session.screen%d.workspaceNames", screen_number);
@@ -1410,6 +1451,7 @@
delete [] search;
}
+#ifdef TOOLBAR
sprintf(name_lookup, "session.screen%d.toolbar.onTop", screen_number);
sprintf(class_lookup, "Session.Screen%d.Toolbar.OnTop", screen_number);
if (XrmGetResource(database, name_lookup, class_lookup, &value_type,
@@ -1432,6 +1474,8 @@
} else {
screen->saveToolbarAutoHide(False);
}
+#endif // TOOLBAR
+
sprintf(name_lookup, "session.screen%d.focusModel", screen_number);
sprintf(class_lookup, "Session.Screen%d.FocusModel", screen_number);
if (XrmGetResource(database, name_lookup, class_lookup, &value_type,
@@ -1743,13 +1787,19 @@
void Blackbox::setFocusedWindow(BlackboxWindow *win) {
BScreen *old_screen = (BScreen *) 0, *screen = (BScreen *) 0;
BlackboxWindow *old_win = (BlackboxWindow *) 0;
+
+#ifdef TOOLBAR
Toolbar *old_tbar = (Toolbar *) 0, *tbar = (Toolbar *) 0;
+#endif // TOOLBAR
+
Workspace *old_wkspc = (Workspace *) 0, *wkspc = (Workspace *) 0;
if (focused_window) {
old_win = focused_window;
old_screen = old_win->getScreen();
+#ifdef TOOLBAR
old_tbar = old_screen->getToolbar();
+#endif // TOOLBAR
old_wkspc = old_screen->getWorkspace(old_win->getWorkspaceNumber());
old_win->setFocusFlag(False);
@@ -1758,7 +1808,9 @@
if (win && ! win->isIconic()) {
screen = win->getScreen();
+#ifdef TOOLBAR
tbar = screen->getToolbar();
+#endif // TOOLBAR
wkspc = screen->getWorkspace(win->getWorkspaceNumber());
focused_window = win;
@@ -1769,13 +1821,17 @@
focused_window = (BlackboxWindow *) 0;
}
- if (tbar)
- tbar->redrawWindowLabel(True);
if (screen)
screen->updateNetizenWindowFocus();
+#ifdef TOOLBAR
+ if (tbar)
+ tbar->redrawWindowLabel(True);
+
if (old_tbar && old_tbar != tbar)
old_tbar->redrawWindowLabel(True);
+#endif // TOOLBAR
+
if (old_screen && old_screen != screen)
old_screen->updateNetizenWindowFocus();
}
diff -burN blackbox-0.62.0-orig/src/blackbox.hh blackbox-0.62.0/src/blackbox.hh
--- blackbox-0.62.0-orig/src/blackbox.hh Sun Dec 30 02:11:38 2001
+++ blackbox-0.62.0/src/blackbox.hh Mon Jan 21 12:09:15 2002
@@ -52,7 +52,9 @@
class BImageControl;
class BlackboxWindow;
class Basemenu;
+#ifdef TOOLBAR
class Toolbar;
+#endif // TOOLBAR
#ifdef SLIT
class Slit;
#endif // SLIT
@@ -91,8 +93,10 @@
LinkedList<WindowSearch> *windowSearchList, *groupSearchList;
typedef DataSearch<Basemenu> MenuSearch;
LinkedList<MenuSearch> *menuSearchList;
+#ifdef TOOLBAR
typedef DataSearch<Toolbar> ToolbarSearch;
LinkedList<ToolbarSearch> *toolbarSearchList;
+#endif // TOOLBAR
#ifdef SLIT
typedef DataSearch<Slit> SlitSearch;
@@ -147,7 +151,9 @@
{ return resource.double_click_interval; }
inline const Time &getLastTime(void) const { return last_time; }
+#ifdef TOOLBAR
Toolbar *searchToolbar(Window);
+#endif // TOOLBAR
inline const char *getStyleFilename(void) const
{ return resource.style_file; }
@@ -176,11 +182,15 @@
void saveMenuFilename(const char *);
void saveMenuSearch(Window, Basemenu *);
void saveWindowSearch(Window, BlackboxWindow *);
+#ifdef TOOLBAR
void saveToolbarSearch(Window, Toolbar *);
+#endif // TOOLBAR
void saveGroupSearch(Window, BlackboxWindow *);
void removeMenuSearch(Window);
void removeWindowSearch(Window);
+#ifdef TOOLBAR
void removeToolbarSearch(Window);
+#endif // TOOLBAR
void removeGroupSearch(Window);
void restart(const char * = 0);
void reconfigure(void);