summaryrefslogtreecommitdiffstats
path: root/src/kooldock.h
diff options
context:
space:
mode:
authorSlávek Banko <[email protected]>2015-10-01 17:05:29 +0200
committerSlávek Banko <[email protected]>2015-10-01 17:05:29 +0200
commit39f2c6a84cd715b11fb3ffa82a86abf2fb9bcd70 (patch)
treed6bc97f38d36892b14703c788cef782f13ee2a4d /src/kooldock.h
downloadkooldock-39f2c6a84cd715b11fb3ffa82a86abf2fb9bcd70.tar.gz
kooldock-39f2c6a84cd715b11fb3ffa82a86abf2fb9bcd70.zip
Initial import of kooldock 0.4.7
Signed-off-by: Slávek Banko <[email protected]>
Diffstat (limited to 'src/kooldock.h')
-rw-r--r--src/kooldock.h364
1 files changed, 364 insertions, 0 deletions
diff --git a/src/kooldock.h b/src/kooldock.h
new file mode 100644
index 0000000..af196bd
--- /dev/null
+++ b/src/kooldock.h
@@ -0,0 +1,364 @@
+/***************************************************************************
+ kooldock.h - description
+ -------------------
+ begin : Tue Jun 10 22:18:34 BST 2003
+ copyright : (C) 2003 by KoolDock team
+ email :
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef KOOLDOCK_H
+#define KOOLDOCK_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <kapp.h>
+#include <kpopupmenu.h>
+#include <kwinmodule.h>
+#include <kaboutdialog.h>
+#include <krootpixmap.h>
+#include <kpixmap.h>
+#include <kurifilter.h>
+
+#include <qwidget.h>
+#include <qptrlist.h>
+#include <qtimer.h>
+#include <qcolor.h>
+
+#include <netwm.h>
+
+#include <qdatetime.h>
+
+#include "item.h"
+#include "xosd.h"
+#include "clip.h"
+#include "setupdialogprg.h"
+#include "dinfo.h"
+
+const int MAX_ICONS = 150; // max number of icons
+const int UPDATE_DIST = 1; // update when x - last_x <= UPDATE_DIST
+const int DEF_SMALL_SIZE = 32; // default small icon size
+const int DEF_BIG_SIZE = 90; // default big icon size
+const int DEF_DOCK_OPACITY = 50; // default dock opacity
+const int DEF_PRIORITY = 5;
+const int DEF_HIDDEN = 1; // default hidden priority
+const int ANIM_TOTAL_STEP = 6; // not in use yet
+
+const int SPACE_W = 1; // space between quick launchers and tasks (the seperator)
+
+const int ON_CHANGE_ANIM_INTERVAL = 50; // animation's interval
+
+/** KoolDock is the base class of the project */
+class KoolDock : public QWidget
+{
+ Q_OBJECT
+ public:
+ /** construtor */
+ KoolDock(QWidget* parent=0, const char *name=0);
+ /** destructor */
+ ~KoolDock();
+
+ //static bool writeIgnoreList(QString text);
+ void setMainPath(QString path);
+ void setArgs(QString param);
+ clip *clipw;
+
+ private:
+ QTime *perf;
+ // configuration variables
+ int fShowTaskbar; // show-taskbar flag
+ int fMinimizedOnly; // show only minimized icons flag
+ int fShowNotification; // show-notification flag
+ int fShowBorders; // show-borders flag
+ int fShowKMenu; // show the K menu
+ int fUseKBFX;
+ int fPriority; // "nice" priority
+ int fMouseTimer; // Mouse timer interval
+ int fClipping; //window area clippig
+ int fClipIcons; //icon area clipping
+ long int fzoomSpeed, zoomStep, zoomStepB, zoomStepS, zoomVal; //speed of show/hide animation
+ int zoomTicksB, zoomTicksS; //counts timer ticks
+ int neededTicksB,neededTicksS; //sets how many ticks is necessary to calculate new speed
+ bool fSpeed;
+ QColor borderColor;
+ int fHidden; // hidden dockbar
+ int fStayBelow;
+ int fOrientation; //bottom/left/top/right
+ int fHideOnClick;
+ int fSteppy;
+ int fShowFrames; // frames to show the dock "growing from bottom"
+ int fGrowFrames; // frames to grow the icon when the mouse is over it.
+ int fHighLightTime;
+ bool fFirstRun;
+ bool fShowShot;
+ bool fGrouping;
+ int fRepaintInterval;
+ int xinerama; //whether we want xinerama
+ int hideTimer; //user define time to show dock
+ int Solid; //whether using backgroung Image or not (for preference controls)
+ int fShowNav; //whether we want the navigation menu (clock + desktop chooser) in kooldocks main menu
+ int numSystray; //for systray control
+ int fSystray; //whether we want the systray or not
+ int fCurrent; //whether to only show windows on current desktop
+ int oldDesktop; //number of previous desktop
+ bool firstTime; //to control certain things
+ QString curTheme; //for the background theme (to preserve changes)
+ int leftRes; //Left monitor resolution
+ int XinDesiredHeight;
+ int XinPreviousWidth;
+ int fpercentPos;
+
+ bool noSet;
+ bool firstInit;
+ bool reloadIcons;
+ bool initialization;
+ int ptPart;
+
+ bool mouseOnLauncher;
+ QStringList lstDrop;
+ bool useList;
+
+ Atom net_system_tray_selection;
+ Atom net_system_tray_opcode;
+
+ QString fLeftImg;
+ QString fRightImg;
+ QString fCenterImg;
+ bool fNWideBg;
+ bool scaleMax;
+
+ QPixmap LeftImg;
+ QPixmap RightImg;
+ QPixmap CenterImg;
+ QPixmap TempScaledCenter;
+ QPixmap TestPix;
+ QImage TestIm;
+
+ unsigned int oLeft, oRight;
+
+ int iwSmall;
+ int iwBig;
+ int iwBig2;
+
+ int firstX, tmpw;
+ int oldfirstX, oldtmpw;
+ int lastX;
+
+ int dockOpacity;
+ QColor bgColor;
+
+ QColor sepColor; // separator bar's color
+
+ int Ybase;
+
+ // normal variables
+
+ QString progPath;
+ QString menuPath;
+ QString confFile;
+ QString iFilename; // right clicked item filename
+ QString mainPath;
+ QString args;
+
+ QStringList ignoreList;
+
+
+ NETWinInfo *info;
+ KWinModule *wm;
+ SetupDialog *setupdlg;
+
+ int Offset;
+ int numLaunchers; // number of quick launcher items
+ int x, y, w, h, h0, h1, w0, x0, w1, x1;
+ int rx, ry, rw, rh, uw; //current position
+ int ix, iy, iDist, iSpace;
+ int dw, dh, rdh;
+ int funcW, funcH;
+ int ii_first, ii_last;
+ int soffset, eoffset; //used in icon positioning
+ int sx, sw;
+ int adjust;
+ int fAmount;
+ int last_mx;
+ int last_ncx;
+
+ QPtrList<Item> items;//currently visible items
+ QPtrList<Item> witems;//all windows on all desktops
+ int iSize[MAX_ICONS + 1];//icon sizes
+ int cx[MAX_ICONS + 1];//positions of small icons
+ int cur_cx[MAX_ICONS + 1];//positions of visible icons
+ QPixmap offscr;//drawing buffer
+
+ KRootPixmap *rootpix;
+ KPixmap bottomBg;
+ KPixmap bottomBgf;
+ QPixmap topBg;
+
+ KAboutDialog *aboutDlg;
+ QTimer *mkbigTimer; //zoom animation timers
+ QTimer *mksmallTimer;
+ QTimer *mTimer; //mouse move emulator (can't use normal event instead)
+ QTimer *onChangeTimer; // used when a window has changed and we need to notify user
+ QTimer *trackTimer; //checks whether mouse touches screen edge
+
+ int animStep; // animation step, not in use yet
+ int iOnClick; // index of the quick launcher being clicked
+ WId cId; // id of the application (used in the right click menu over the taskbar)
+ QString cClass;
+ WId CurrentFocus;
+ int onChangeAnimStep;
+ KPopupMenu *deskpopup;
+ KPopupMenu *appMenu;
+ KPopupMenu *godesk;
+ KPopupMenu *tasklist;
+ KPopupMenu *popup;
+ KPopupMenu *advMenu;
+ int menuCount, currMenu;
+ bool allApps;
+ QPtrList<KPopupMenu> popups;
+ bool iGroup;
+ int dIndex, nDesks;
+ QPtrList<dInfo> desks;
+
+ bool fExpanded;
+ bool track2active;
+ /*Xosd Section */
+ QString nom;
+ QString aux;
+ //xosd *osd;
+ int xosd_st;
+ int showNames;
+ int fCleaner;
+ int xosdShadowOffset;
+ QString xosdFont;
+ QString xosdColor;
+ QString xosdShadowColor;
+ bool xosdBold;
+ bool xosdItalic;
+ int xosdSize;
+ KURIFilterData *_filterData;
+ xosd *xosdw;
+ int animValue;
+ int animState;
+
+ void run(QString cmd);
+ int func(int x);
+ int func2(int x);
+ void doUpdateGeometry();
+ bool addTask(WId id, int iFound=-1);
+ bool rmTask(WId id, int iFound=-1);
+ void rmwTask(int iFound);
+ bool addwTask(WId id);
+ void movetoback(WId id);
+ void loadConf();
+ void loadIgnore();
+ void saveConf();
+ void loadMenu();
+ void addWindows();
+ int itemFromPoint(int x);
+ int xFromIndex(int i);
+ void createMenu(WId id, KPopupMenu* tmpMenu, KWin::WindowInfo* info);
+ void updTaskList();
+ void addToTaskList(WId id);
+ void rmFromTaskList(WId id);
+ bool doRepaint;
+ int currXPos;
+ int lastXPos;
+ int lastYPos;
+ void init1();
+ void init2();
+
+ protected:
+ void paintEvent(QPaintEvent *);
+ void mousePressEvent( QMouseEvent * );
+ void mMoveEvent( int ex, int ey);
+ void mPress( int mx, int my, ButtonState srcButton);
+ void wheelEvent(QWheelEvent *);
+ void enterEvent(QEvent*);
+ void onleaveEvent(QEvent*);
+ void mksmallTimerstop();
+ void dragMoveEvent(QDragMoveEvent* event);
+ void dropEvent(QDropEvent* event);
+
+ public slots:
+ void edit();
+ void editPref();
+ void about();
+ void windowAdded(WId id);
+ void windowRemoved(WId id);
+ void windowChanged(WId id, unsigned int properties);
+ void activeWindowChanged(WId id);
+ void workAreaChanged();
+ void currentDesktopChanged(int);
+ void onChangeTimerTicked();
+ void updateBackground(const QPixmap&);
+ void moveApp();
+ void resizeApp();
+ void minApp();
+ void maxApp();
+ void restApp();
+ void minAllApps();
+ void maxAllApps();
+ void restAllApps();
+ void closeAllApps();
+ void shadeApp();
+ void activateApp();
+ void closeApp();
+ void editItem();
+ void removeItem();
+ void sendToDesktop(int);
+ void goToDesktop(int);
+ void goToWindow(int);
+ /* Systray support */
+ void systemTrayWindowAdded(WId id);
+ void systemTrayWindowRemoved(WId id);
+ void aboutToShow();
+ void aboutToHide();
+
+ void toggleAlwaysOnTop();
+ void toggleKeptBelowOthers();
+ void toggleFullScreen();
+
+ static void addFile(QString filename, QString iconname, QString execname, QString name, bool notify, bool terminal, bool tclose, bool, QString);
+ bool ignored(QString appname);
+
+ #ifdef _ENABLE_DEBUG
+ static void debug(QString message);
+ #endif
+ #ifndef _ENABLE_DEBUG
+ static void debug(QString);
+ #endif
+ void mkbigTimerDo();
+ void mksmallTimerDo();
+ void endProg();
+ void mTimerEnd();
+ void trackTimerEnd();
+ void trackTimer2End();
+ void restart();
+ void reload();
+ void chkRestart();
+ void refreshBackground();
+ void unhighlight();
+ void move2(int nx, int ny);
+ void resize2(int nw, int nh);
+ void getBottomBG();
+ void getTopBG();
+ void setDesktopIconsArea(int, int, int, int);
+ void setDockAbove();
+ void setDockBelow();
+ void menuX(int num);
+ void menuShow();
+ void pTest();
+};
+
+#endif