From 07190d2133f22b89de3693867213c22e28d41d2e Mon Sep 17 00:00:00 2001
From: fluxgen <fluxgen>
Date: Wed, 13 Aug 2003 10:04:29 +0000
Subject: obsolete

---
 src/IconBar.cc | 447 ---------------------------------------------------------
 src/IconBar.hh | 100 -------------
 2 files changed, 547 deletions(-)
 delete mode 100644 src/IconBar.cc
 delete mode 100644 src/IconBar.hh

diff --git a/src/IconBar.cc b/src/IconBar.cc
deleted file mode 100644
index 898c77e..0000000
--- a/src/IconBar.cc
+++ /dev/null
@@ -1,447 +0,0 @@
-// IconBar.cc for Fluxbox Window Manager
-// Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-
-// $Id: IconBar.cc,v 1.41 2003/08/04 12:57:23 fluxgen Exp $
-
-#include "IconBar.hh"
-
-#include "I18n.hh"
-#include "Screen.hh"
-#include "Window.hh"
-#include "ImageControl.hh"
-#include "Text.hh"
-#include "RootTheme.hh"
-#include "FbWinFrameTheme.hh"
-
-#include <algorithm>
-
-//!! TODO THIS FILE NEEDS CLEANING
-
-IconBarObj::IconBarObj(FluxboxWindow *fluxboxwin, Window iconwin)
-{
-    m_fluxboxwin = fluxboxwin;
-    m_iconwin = iconwin;
-}
-
-IconBarObj::~IconBarObj() {
-	
-}
-
-/// @return the width of specified icon window
-unsigned int IconBarObj::width() const {
-    Window root;
-
-    unsigned int width, height;
-    unsigned int border_width, depth;	//not used
-    int x, y; //not used
-
-    Display *disp = FbTk::App::instance()->display();
-
-    XGetGeometry(disp, m_iconwin, &root, &x, &y, 
-                 &width, &height, &border_width, &depth);
-
-    return width;
-}
-
-/// @return the width of specified icon window
-unsigned int IconBarObj::height() const {
-    Window root;
-
-    unsigned int width, height;
-    unsigned int border_width, depth;	//not used
-    int x, y; //not used
-
-    Display *disp = FbTk::App::instance()->display();
-
-    XGetGeometry(disp, m_iconwin, &root, &x, &y, 
-                 &width, &height, &border_width, &depth);
-
-    return height;
-}
-
-
-IconBar::IconBar(BScreen &scrn, Window parent, FbTk::Font &font):
-    m_screen(scrn),
-    m_display(FbTk::App::instance()->display()),
-    m_parent(parent),
-    m_focus_pm(None),
-    m_vertical(false),
-    m_font(font),
-    allow_updates(0)
-{
-
-}
-
-IconBar::~IconBar() {
-}
-
-/**
- Adds icon to iconbar and repostions the 
- icons.
- returns window to iconobj
-*/
-Window IconBar::addIcon(FluxboxWindow *fluxboxwin) {
-    if (fluxboxwin == 0)
-        return 0;
-
-     // we don't want dublicate instances
-    IconList::iterator it = m_iconlist.begin();
-    IconList::iterator it_end = m_iconlist.end();
-    for (; it != it_end; ++it) {
-        if ((*it)->getFluxboxWin() == fluxboxwin)
-            return 0;
-    }
-
-    Window iconwin = createIconWindow(fluxboxwin, m_parent);
-    decorate(iconwin);	
-    //add window object to list	
-    m_iconlist.push_back(new IconBarObj(fluxboxwin, iconwin));
-
-    //reposition all icons to fit windowbar
-    repositionIcons();
-
-    XMapSubwindows(m_display, iconwin);
-    XMapWindow(m_display, iconwin);	
-	
-    return iconwin;
-}
-
-/**
-  Removes icon from list and
-  repositions the rest of the icons
-  Return X Window of the removed iconobj
-  returns None if no window was found
-*/
-Window IconBar::delIcon(FluxboxWindow *fluxboxwin) {
-    if (fluxboxwin == 0)
-        return 0;
-
-    Window retwin = None;
-    IconBarObj *obj = findIcon(fluxboxwin);
-    if (obj) {
-        IconList::iterator it =
-            std::find(m_iconlist.begin(), m_iconlist.end(), obj);
-        if (it != m_iconlist.end()) {
-            m_iconlist.erase(it);
-            retwin = obj->getIconWin();		
-            delete obj;
-            XDestroyWindow(m_display, retwin);
-            repositionIcons();		
-        }
-    }		
-    return retwin;
-}
-
-/**
- * Removes all icons from list
- * Return X Windows of the removed iconobjs
- */
-IconBar::WindowList *IconBar::delAllIcons(bool ignore_stuck) {
-    Window retwin = None;
-    WindowList *ret = new WindowList();
-    IconList::iterator it = m_iconlist.begin();
-    IconList::iterator tmp = m_iconlist.end();
-    IconList::iterator it_end = m_iconlist.end();
-    while (it != it_end) {
-            IconBarObj *obj = *it;
-            if (!ignore_stuck || !obj->getFluxboxWin()->isStuck()) {
-                retwin = obj->getIconWin();
-                ret->push_back(retwin);
-                tmp = it;
-                ++it;
-                m_iconlist.erase(tmp);
-                delete obj;
-                XDestroyWindow(m_display, retwin);
-            } else {
-                ++it;
-            }
-    }
-    repositionIcons();
-    return ret;
-}
-
-/**
- renders theme to m_focus_pm
- with the size width * height
-
-*/
-void IconBar::loadTheme(unsigned int width, unsigned int height) {
-    //!! TODO: iconbar style theme
-
-    FbTk::ImageControl &image_ctrl = screen().imageControl();
-    Pixmap tmp = m_focus_pm;
-    const FbTk::Texture *texture = &(screen().winFrameTheme().labelFocusTexture());
-	
-    //If we are working on a PARENTRELATIVE, change to right focus value
-    if (texture->type() & FbTk::Texture::PARENTRELATIVE ) {
-        texture = &(screen().winFrameTheme().titleFocusTexture());
-    }
-		
-    if (texture->type() == (FbTk::Texture::FLAT | FbTk::Texture::SOLID)) {
-        m_focus_pm = None;
-        m_focus_pixel = texture->color().pixel();
-    } else {
-        m_focus_pm =
-            image_ctrl.renderImage(width, height, *texture);
-    }
-
-    if (tmp)
-        image_ctrl.removeImage(tmp);
-}
-
-/**
- sets the background pixmap/color, 
- border, border width of the window
-*/
-void IconBar::decorate(Window win) {
-    //!! TODO iconbar border width style
-    XSetWindowBorderWidth(m_display, win, 1);
-    XSetWindowBorder(m_display, win, BlackPixel(FbTk::App::instance()->display(),
-                                                screen().screenNumber())); 
-    if (m_focus_pm)
-        XSetWindowBackgroundPixmap(m_display, win, m_focus_pm);
-    else
-        XSetWindowBackground(m_display, win, m_focus_pixel);
-}
-
-
-/**
-  Reconfigures the icons 
-  theme, pos and width
-*/
-void IconBar::reconfigure() {	
-    repositionIcons();
-	
-}
-
-/**
- Handles the expose event
- just redraws all the icons
-*/
-void IconBar::exposeEvent(XExposeEvent *ee) {
-    IconBarObj *obj = 0;	
-    IconList::iterator it = m_iconlist.begin();
-    IconList::iterator it_end = m_iconlist.end();
-    for (; it != it_end; ++it) {
-        if ((*it)->getIconWin() == ee->window) {
-            obj = (*it);
-            break;
-        }
-    }	
-
-    if (obj) {
-
-        Window root;
-        unsigned int width, height;
-        unsigned int border_width, depth;	//not used
-        int x, y;
-        XGetGeometry(m_display, m_parent, &root, &x, &y, &width, &height,
-                     &border_width, &depth);
-
-        //max width on every icon
-        unsigned int icon_width = width / m_iconlist.size();
-	
-        //load right size of theme
-        loadTheme(icon_width, height);
-				
-        draw(obj, icon_width);
-		
-    }	
-}
-
-void IconBar::enableUpdates() {
-    --allow_updates;
-    if (allow_updates <= 0) 
-        repositionIcons();
-    
-}
-
-void IconBar::disableUpdates() {
-    ++allow_updates;
-}
-
-/**
- Calculates and moves/resizes the icons
-*/
-void IconBar::repositionIcons() {
-    if (m_iconlist.size() == 0 || allow_updates > 0)
-        return;
-		
-    Window root;
-    unsigned int width, height;
-    unsigned int border_width, depth;	//not used
-    int x, y;
-    XGetGeometry(m_display, m_parent, &root, &x, &y, &width, &height,
-                 &border_width, &depth);
-	
-    //max width on every icon
-    unsigned int icon_width = width / m_iconlist.size();
-    if (m_vertical)
-        icon_width = height / m_iconlist.size();
-    //load right size of theme
-    loadTheme(icon_width, height);
-
-    IconList::iterator it = m_iconlist.begin();
-    IconList::iterator it_end = m_iconlist.end();
-    for (x = 0; it != it_end; ++it, x += icon_width) {
-        Window iconwin = (*it)->getIconWin();
-        if (!m_vertical) {
-            XMoveResizeWindow(m_display, iconwin,
-                              x, 0,
-                              icon_width, height);	
-        } else {
-            XMoveResizeWindow(m_display, iconwin,
-                              0, x,
-                              height, icon_width);	
-        }
-        draw((*it), icon_width);
-        decorate(iconwin);
-    }
-		
-}
-
-/**
- creates the X Window of icon
- @return the created X Window
-*/
-Window IconBar::createIconWindow(FluxboxWindow *fluxboxwin, Window parent) {
-    unsigned long attrib_mask = CWBackPixmap | CWBackPixel | CWBorderPixel |
-        CWColormap | CWOverrideRedirect | CWEventMask;
-    XSetWindowAttributes attrib;
-    attrib.background_pixmap = None;
-    attrib.background_pixel = attrib.border_pixel =
-        BlackPixel(m_display,
-                   screen().screenNumber());
-    //        fluxboxwin->screen().getWindowStyle()->tab.border_color.pixel();
-    attrib.colormap = fluxboxwin->screen().rootWindow().colormap();
-    attrib.override_redirect = True;
-    attrib.event_mask = ButtonPressMask | ButtonReleaseMask |
-        ButtonMotionMask | ExposureMask | EnterWindowMask;
-											
-    //create iconwindow
-    Window iconwin = XCreateWindow(m_display, parent, 0, 0, 1, 1, 0,
-                                   fluxboxwin->screen().rootWindow().depth(), 
-                                   InputOutput, fluxboxwin->screen().rootWindow().visual(),
-                                   attrib_mask, &attrib);
-		
-    return iconwin;
-}
-
-/**
- Draws theme and string to Window w
-*/
-void IconBar::draw(const IconBarObj * const obj, int width) const {
-    if (!obj)
-        return;
-	
-    const FluxboxWindow * const fluxboxwin = obj->getFluxboxWin();
-    if (fluxboxwin == 0)
-        return;
-
-    Window iconwin = obj->getIconWin();
-    unsigned int title_text_w;
-
-    title_text_w = m_font.textWidth(fluxboxwin->iconTitle().c_str(),
-                                    fluxboxwin->iconTitle().size());
-
-    unsigned int bevel_w = screen().rootTheme().bevelWidth();
-    int dx = bevel_w * 2;
-
-    // center by default
-    unsigned int newlen = 0;
-    dx = FbTk::doAlignment(m_vertical ? obj->height() : obj->width(), 
-                           bevel_w*2, FbTk::CENTER, m_font,
-                           fluxboxwin->iconTitle().c_str(), 
-                           fluxboxwin->iconTitle().size(),
-                           newlen);
-    // Draw title to m_iconwin
-
-    XClearWindow(m_display, iconwin);		
-    int dy = 1 + m_font.ascent();
-    if (m_vertical) {
-        int tmp = dy;
-        dy = obj->height() - dx;
-        dx = tmp + bevel_w;
-    } else 
-        dy += bevel_w;
-
-    m_font.drawText(iconwin,
-                    screen().screenNumber(),
-                    screen().winFrameTheme().labelTextFocusGC(),
-                    fluxboxwin->iconTitle().c_str(), newlen,
-                    dx, dy,
-                    m_vertical);
-
-}
-
-/**
- Tries to find the FluxboxWindow of the X Window
- in iconbar
- @return the fluxboxwindow on success else 0 on failure
-*/
-FluxboxWindow *IconBar::findWindow(Window w) {
-
-    IconList::iterator it = m_iconlist.begin();
-    IconList::iterator it_end = m_iconlist.end();
-    for (; it != it_end; ++it) {
-        IconBarObj *tmp = (*it);
-        if (tmp) {
-            if (tmp->getIconWin() == w)
-                return tmp->getFluxboxWin();
-        }
-    }
-	
-    return 0;
-}
-
-/*
- Tries to find a fluxboxwin icon in the iconlist
- @return pointer to IconBarObj on success else 0 on failure
-*/
-IconBarObj *IconBar::findIcon(FluxboxWindow *fluxboxwin) {
-
-    IconList::iterator it = m_iconlist.begin();
-    IconList::iterator it_end = m_iconlist.end();
-    for (; it != it_end; ++it) {
-        IconBarObj *tmp = (*it);
-        if (tmp) {
-            if (tmp->getFluxboxWin() == fluxboxwin)
-                return tmp;
-        }
-    }
-	
-    return 0;
-}
-
-const IconBarObj *IconBar::findIcon(const FluxboxWindow * const fluxboxwin) const {
-
-    IconList::const_iterator it = m_iconlist.begin();
-    IconList::const_iterator it_end = m_iconlist.end();
-    for (; it != it_end; ++it) {
-        IconBarObj *tmp = (*it);
-        if (tmp) {
-            if (tmp->getFluxboxWin() == fluxboxwin)
-                return tmp;
-        }
-    }
-	
-    return 0;
-}
diff --git a/src/IconBar.hh b/src/IconBar.hh
deleted file mode 100644
index 7f58a12..0000000
--- a/src/IconBar.hh
+++ /dev/null
@@ -1,100 +0,0 @@
-// IconBar.hh for Fluxbox Window Manager
-// Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-
-// $Id: IconBar.hh,v 1.15 2003/06/26 12:22:42 rathnor Exp $
-
-#ifndef ICONBAR_HH
-#define ICONBAR_HH
-
-#include <X11/Xlib.h>
-#include <list>
-
-class FluxboxWindow;
-class BScreen;
-
-namespace FbTk {
-class Font;
-};
-/**
-	Icon object in IconBar
-*/
-class IconBarObj
-{
-public:	
-    IconBarObj(FluxboxWindow *fluxboxwin, Window iconwin);
-    ~IconBarObj();
-    Window getIconWin() const { return m_iconwin; }
-    FluxboxWindow *getFluxboxWin() { return m_fluxboxwin; }
-    const FluxboxWindow *getFluxboxWin() const { return m_fluxboxwin; }
-    unsigned int width() const;
-    unsigned int height() const;
-private:
-    FluxboxWindow *m_fluxboxwin;
-    Window m_iconwin;
-};
-
-/**
-	Icon container
-*/
-class IconBar
-{
-public:
-    typedef std::list<Window> WindowList;
-    IconBar(BScreen &scrn, Window parent, FbTk::Font &font);
-    ~IconBar();
-    void draw(); //TODO
-    void reconfigure();
-    Window addIcon(FluxboxWindow *fluxboxwin);
-    Window delIcon(FluxboxWindow *fluxboxwin);
-    WindowList *delAllIcons(bool ignore_stuck = false);
-    void buttonPressEvent(XButtonEvent *be);	
-    FluxboxWindow *findWindow(Window w);
-    IconBarObj *findIcon(FluxboxWindow * const fluxboxwin);
-    const IconBarObj *findIcon(const FluxboxWindow * const fluxboxwin) const;
-    void exposeEvent(XExposeEvent *ee);
-
-    void enableUpdates();
-    void disableUpdates();    
-
-    void draw(const IconBarObj * const obj, int width) const;
-    void setVertical(bool value) { m_vertical = value; }
-    BScreen &screen() { return m_screen; }
-    const BScreen &screen() const { return m_screen; }
-private:
-    typedef std::list<IconBarObj *> IconList;
-
-    void loadTheme(unsigned int width, unsigned int height);
-    void decorate(Window win);
-    void repositionIcons();
-    Window createIconWindow(FluxboxWindow *fluxboxwin, Window parent);
-    BScreen &m_screen;
-    Display *m_display;
-    Window m_parent;
-    IconList m_iconlist;	
-    Pixmap m_focus_pm;
-    unsigned long m_focus_pixel;
-    bool m_vertical;
-    FbTk::Font &m_font;
-
-    int allow_updates;
-};
-
-#endif // ICONBAR_HH
-- 
cgit v0.11.2