-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sun, 21 Oct 2001, tp40 wrote:
> Hi all, > > I just got bbappconf up and running. I have a question: > > when I run it, it appears as an annoying rectangle at the top-left hand > corner of my scree, kinda like bbpager, except it's just a plain little > block. How can I get rid of it? There's no "-i" option for bbappconf it > appears ... I also had problems with the -i option. I patched it to get it working for me, as well as addded some new options to the application for setting windows' positions and sizes. See attached. :) xOr - -- I am damn unsatisfied to be killed in this way. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE71mIU8mPQRGtSu14RAvR6AKCCY6cMJ5glXcMIa421tTCiKRJ/hwCeKyaT TDHOmYweC18w0Oz0zfi6blA= =Ymd/ -----END PGP SIGNATURE-----
diff -u bbappconf-0.0.1-peak3/appconf.hh bbappconf-xor/appconf.hh --- bbappconf-0.0.1-peak3/appconf.hh Mon Feb 19 12:40:11 2001 +++ bbappconf-xor/appconf.hh Tue Aug 7 02:23:52 2001 @@ -37,7 +37,11 @@ unsigned int getStartOnDesktop(void) { return start_on_desktop;} bool getMaxHoriz(void) { return max_horiz;} bool getMaxVert(void) {return max_vert;} - + int getPositionX(void) {return position_x;} + int getPositionY(void) {return position_y;} + int getWidth(void) {return width;} + int getHeight(void) {return height;} + char *getName(void) { return appname;} char *getClass(void) { return appclass;} @@ -47,6 +51,10 @@ void setMaxHoriz(bool _max_horiz) {max_horiz=_max_horiz;} void setStartOnDesktop(unsigned int _start_on_desktop) {start_on_desktop=_start_on_desktop;} + void setPositionX(int _position_x) {position_x=_position_x;} + void setPositionY(int _position_y) {position_y=_position_y;} + void setWidth(int _width) {width=_width;} + void setHeight(int _height) {height=_height;} private: bool sticky; @@ -54,7 +62,9 @@ bool max_horiz; bool max_vert; unsigned int start_on_desktop; - char *appname; + int position_x, position_y; + int width, height; + char *appname; char *appclass; }; diff -u bbappconf-0.0.1-peak3/bbappconf.cc bbappconf-xor/bbappconf.cc --- bbappconf-0.0.1-peak3/bbappconf.cc Mon Feb 19 13:57:03 2001 +++ bbappconf-xor/bbappconf.cc Tue Aug 7 02:47:38 2001 @@ -35,6 +35,7 @@ config_db = XrmGetFileDatabase("config.bb"); + iconic = options->iconic; desktop_nr=0; current_desktop_nr=-1; wm_init=False; @@ -43,7 +44,7 @@ pushed_app=0; MakeWindow(False); wminterface->moduleInit(); - eventLoop(); + eventLoop(); } ToolWindow::~ToolWindow() { @@ -92,9 +93,6 @@ desktop_nr=0; -// LinkedListIterator<AppWindow> win_it(appWindowList); -// for (; win_it.current(); win_it++) -// addAppWindow(win_it.current(),True); XClearWindow(getXDisplay(), framewin); } @@ -245,6 +168,16 @@ getWMInterface()->sendWindowToDesktop(*win, resource->getAppConf(i)->getStartOnDesktop()-1); } + /* set window size */ + if (resource->getAppConf(i)->getWidth()>=0 && + resource->getAppConf(i)->getHeight()>=0) { + +getWMInterface()->resizeWindow(*win,resource->getAppConf(i)->getWidth(),resource->getAppConf(i)->getHeight()); + + } + /* set window position */ + if (resource->getAppConf(i)->getPositionX()!=-1111 && + resource->getAppConf(i)->getPositionY()!=-1111) { + +getWMInterface()->moveWindow(*win,resource->getAppConf(i)->getPositionX(),resource->getAppConf(i)->getPositionY()); + + } if (resource->getAppConf(i)->getMaxHoriz() || resource->getAppConf(i)->getMaxVert()) { if (XGetWindowProperty(getXDisplay(), *win, @@ -413,12 +346,6 @@ XSetWindowBackgroundPixmap(getXDisplay(), framewin, pixmap.frame); } - if (!withdrawn && resource->report.auto_raise) { - XRaiseWindow(getXDisplay(),framewin); - lower=False; - } - else lower=True; - if (!reconfigure) { // gcv.font = resource->menu.font->fid; @@ -460,7 +387,7 @@ XMapWindow(getXDisplay(), framewin); XMapSubwindows(getXDisplay(), framewin); if (iconic) { - getWMInterface()->setIconicState(framewin,true); + getWMInterface()->setIconicState(framewin, True); } } diff -u bbappconf-0.0.1-peak3/bbappconf.hh bbappconf-xor/bbappconf.hh --- bbappconf-0.0.1-peak3/bbappconf.hh Tue Oct 10 14:34:27 2000 +++ bbappconf-xor/bbappconf.hh Tue Aug 7 02:33:55 2001 @@ -97,11 +97,11 @@ private: - bool lower; bool wm_init; int day,month,year; int number_of_icons; + bool iconic; int current_desktop_nr; PIXMAP pixmap; struct GEOMM frame; Common subdirectories: bbappconf-0.0.1-peak3/data and bbappconf-xor/data diff -u bbappconf-0.0.1-peak3/resource.cc bbappconf-xor/resource.cc --- bbappconf-0.0.1-peak3/resource.cc Mon Feb 19 13:17:56 2001 +++ bbappconf-xor/resource.cc Tue Aug 7 02:23:52 2001 @@ -61,6 +61,8 @@ int i; char rclass[40]; char rname[40]; + int position_x, position_y; + int width, height; if ((XrmGetResource(resource_db, "bbappconf.numberOf.configs", "Bbappconf.NumberOf.Configs", @@ -164,7 +166,50 @@ app_conf[i].setMaxHoriz(false); } - + sprintf(rclass, "Bbappconf.%d.Width",i+1); + sprintf(rname, "bbappconf.%d.width",i+1); + if ((XrmGetResource(resource_db, rname,rclass, + + &value_type, &value))) { + if (sscanf(value.addr, "%u", &width) != 1) { + width = -1; + } + } else + width=-1; + app_conf[i].setWidth(width); + + sprintf(rclass, "Bbappconf.%d.Height",i+1); + sprintf(rname, "bbappconf.%d.height",i+1); + if ((XrmGetResource(resource_db, rname,rclass, + + &value_type, &value))) { + if (sscanf(value.addr, "%u", &height) != 1) { + height = -1; + } + } else + height=-1; + app_conf[i].setHeight(height); + + sprintf(rclass, "Bbappconf.%d.PositionX",i+1); + sprintf(rname, "bbappconf.%d.positionX",i+1); + if ((XrmGetResource(resource_db, rname,rclass, + &value_type, &value))) { + if (sscanf(value.addr, "%u", &position_x) != 1) { + position_x = -1111; + } + } else + position_x=-1111; + app_conf[i].setPositionX(position_x); + + sprintf(rclass, "Bbappconf.%d.PositionY",i+1); + sprintf(rname, "bbappconf.%d.positionY",i+1); + if ((XrmGetResource(resource_db, rname,rclass, + &value_type, &value))) { + if (sscanf(value.addr, "%u", &position_y) != 1) { + position_y = -1111; + } + } else + position_y=-1111; + app_conf[i].setPositionY(position_y); + } } diff -u bbappconf-0.0.1-peak3/wminterface.cc bbappconf-xor/wminterface.cc --- bbappconf-0.0.1-peak3/wminterface.cc Tue Oct 17 15:03:14 2000 +++ bbappconf-xor/wminterface.cc Tue Aug 7 02:46:55 2001 @@ -285,9 +285,9 @@ void WMInterface::NETNotifyStartup() { bbtool->setNETInit(); //wm_init=True; - XClearWindow(bbtool->getXDisplay(), bbtool->framewin); +/* XClearWindow(bbtool->getXDisplay(), bbtool->framewin); XMapWindow(bbtool->getXDisplay(), bbtool->framewin); - XMapSubwindows(bbtool->getXDisplay(), bbtool->framewin); + XMapSubwindows(bbtool->getXDisplay(), bbtool->framewin);*/ } void WMInterface::NETNotifyWindowAdd(Window win,int desktop_nr) { @@ -415,3 +415,12 @@ } else if (number_of_desktops<old_number_of_desktops) bbtool->removeDesktopWindow();*/ } + +void WMInterface::moveWindow(Window win, int x, int y) { + XMoveWindow(bbtool->getXDisplay(), win, x, y); +} + +void WMInterface::resizeWindow(Window win, int width, int height) { + XResizeWindow(bbtool->getXDisplay(), win, width, height); +} + diff -u bbappconf-0.0.1-peak3/wminterface.hh bbappconf-xor/wminterface.hh --- bbappconf-0.0.1-peak3/wminterface.hh Wed Oct 11 12:45:22 2000 +++ bbappconf-xor/wminterface.hh Tue Aug 7 02:23:52 2001 @@ -53,7 +53,9 @@ int getAttributes(Window); void changeIconState(Window); void windowAttributeChange(Window); - + void moveWindow(Window,int,int); + void resizeWindow(Window,int,int); + int getNumberOfDesktops(); int getCurrentDesktop(); void changeDesktop(int);