📄 bbsmount_base.hh
字号:
// bbsmount_base.hh for bbsmount - an tool for simple mounting in X11//// Copyright (c) 2001-2002 by Miroslav Jezbera, jezberam@phoenix.inf.upol.cz//// 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.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.//// (See the included file COPYING / GPL-2.0)//#ifndef BBSMOUNT_BASE_HH#define BBSMOUNT_BASE_HH#include <vector>#include <set>#include <string>#include <X11/Xlib.h>#include <X11/xpm.h>using namespace std;// Classes:class File { public: File(const char * file_name, const char * images_prefix); ~File(); bool Exist(void) const; char *GetPath(void) const; private: void FindFile(const char *file_name); char *path; const char *images_path;};class Action { public: Action(); Action(const Action ©); ~Action(); unsigned int GetCommand(const bool mounted) const; unsigned int GetButton() const; unsigned int GetModifiers() const; unsigned int GetNegativeModifiers() const; bool IsActive(const unsigned int _button, const unsigned int state) const; void SetCommand(const unsigned int command, const bool mounted); void SetButton(const unsigned int _button); void AddModifier(const unsigned int _modifier); void AddNegativeModifier(const unsigned int _modifier); bool operator == (const Action &cmp) const { return (cmp.GetButton() == button && cmp.GetModifiers() == modifiers && cmp.GetNegativeModifiers() == nmodifiers); } bool operator != (const Action &cmp) const { return (cmp.GetButton() != button || cmp.GetModifiers() != modifiers || cmp.GetNegativeModifiers() != nmodifiers); } bool operator > (const Action &cmp) const { if (cmp.GetButton() < button) return true; if (cmp.GetButton() == button && cmp.GetModifiers() < modifiers) return true; if (cmp.GetButton() == button && cmp.GetModifiers() == modifiers && cmp.GetNegativeModifiers() < nmodifiers) return true; return false; } bool operator < (const Action &cmp) const { if (cmp.GetButton() > button) return true; if (cmp.GetButton() == button && cmp.GetModifiers() > modifiers) return true; if (cmp.GetButton() == button && cmp.GetModifiers() == modifiers && cmp.GetNegativeModifiers() > nmodifiers) return true; return false; } private: unsigned int command_if_mouted, command_if_not_mounted, button, modifiers, nmodifiers;};class MountPoint { public: MountPoint(const string &_mountpoint); MountPoint(const MountPoint ©); ~MountPoint(); bool IsMounted() const; unsigned int GetMountedImage() const; unsigned int GetNotMountedImage() const; unsigned int GetCurrentImage(bool &ismounted) const; unsigned int getMountedInfo(void) const; unsigned int getNotMountedInfo(void) const; unsigned int getErrorInfo(void) const; unsigned int getCurrentInfo(void) const; const string &GetMountPoint() const; const string &getDescription(void) const; const string &getLastError(void) const; const set<Action> &GetActions() const; unsigned int GetCommand(const unsigned int button, const unsigned int state) const; bool IsLocked() const; void AddAction(const Action &action); void SetMountedImage(const unsigned int image); void SetNotMountedImage(const unsigned int image); void setMountedInfo(const unsigned int infotext); void setNotMountedInfo(const unsigned int infotext); void setErrorInfo(const unsigned int infotext); void setDescription(const string &desc); void setLastError(const string &error); void clearError(void); void SetMounted(const bool is_mounted); void Lock(); void Unlock(); bool operator == (const MountPoint &other) const { return (this == &other); }; private: set<Action> actions; string mountpoint, description, last_error; unsigned int mounted_image, not_mounted_image, mounted_info, not_mounted_info, error_info; bool mounted, commandlock, was_error;};class MyImage { public: MyImage(Display *_dpy, const Pixmap image, const Pixmap shape); MyImage(Display *_dpy, const Window &rootwin, XpmImage *image); MyImage(const MyImage ©); ~MyImage(); Display *GetDisplay(); Pixmap GetImage(void) const; Pixmap GetImageShape(void) const; private: Pixmap normal_pixmap, shape_pixmap; Display *dpy;};class MountWindow { public: MountWindow(MountPoint *_mountpoint, Display *_display, const Window _parent, const int _x, const int _y, const unsigned int _width, const unsigned int _height); ~MountWindow(); const Window GetWindow() const; MountPoint &GetMountPoint(void); void Update(void); void SetPressed(const bool is_pressed); void Draw(const bool _raised = true); void Draw(const int _x, const int _y, const unsigned int _width, const unsigned int _height); void Resize(const unsigned int _width, const unsigned int _height); void Move(const int _x, const int _y); void MoveResize(const int _x, const int _y, const unsigned int _width, const unsigned int _height); private: Display *display; Window parent, mywindow; GC mywindowgc; int x, y; unsigned int width, height; MountPoint *mountpoint; bool drawmounted, raised;};#endif /* BBSMOUNT_BASE_HH */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -