// resource.hh for bbsmount - an tool for mounting in X11
//
// Copyright (c) 2001 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 __RESOURCE_HH
#define __RESOURCE_HH
#include <X11/xpm.h>
#include "bbsmount_base.hh"
#include "bbsmount.hh"
#include "Baseresource.hh"
//#define BBTOOLS 1
//#define DEFAULT 2
//#define BLACKBOX 3
class BaseResource;
struct FRAME {
int width;
int height;
BTexture texture;
int bevelWidth;
};
struct TOOLTIP {
BTexture texture;
XFontStruct *font;
XFontSet fontset;
XFontSetExtents *fontset_extents;
BColor textColor;
BColor borderColor;
int bevelWidth, borderWidth, timeout;
};
struct POSITION {
int x;
int y;
int mask;
};
struct APP {
unsigned int refresh_time;
int rows, columns, row_height, column_width, button_padding;
BTexture mount_texture;
BTexture mount_texture_pressed;
};
struct MOUNT_POINT {
char * mount_point;
int mounted_image, notmounted_image, actions_count;
vector<Action> actions;
bool can_eject, can_close;
XpmImage mounted;
XpmImage not_mounted;
};
class Resource : public BaseResource
{
public:
Resource(ToolWindow *);
~Resource(void);
struct FRAME frame;
struct POSITION position;
struct APP app;
struct MOUNT_POINT *mounts;
struct TOOLTIP tooltip;
int mounts_count;
// New code
const string &GetImagePrefix(void) const;
const vector<MountPoint> &GetMountPoints(void) const;
const vector<string> &GetCommands(void) const;
const vector<string> &getInfoTexts(void) const;
const vector<string> &GetImages(void) const;
XFontSet &getTooltipFontSet(void) {
return tooltip.fontset;
}
XFontSetExtents *getTooltipFontSetExtents(void) {
return tooltip.fontset_extents;
}
XFontStruct *getTooltipFont(void) {
return tooltip.font;
}
const BColor &getTooltipBorderColor(void) const
{
return tooltip.borderColor;
}
unsigned int getTooltipBorderWidth(void) const
{
return tooltip.borderWidth;
}
int getTooltipBevelWidth(void) const
{
return tooltip.bevelWidth;
}
int getTooltipTimeout(void) const
{
return tooltip.timeout;
}
const BColor &getTooltipFontColor(void) const
{
return tooltip.textColor;
}
BTexture *getTooltipTexture(void)
{
return &tooltip.texture;
}
void FreeAll(void);
void MountPoints(void);
protected:
virtual void LoadBBToolResource(void);
XFontSet Resource::createFontSet(const string &fontname);
private:
void Frame(void);
void SizeAndPosition(void);
void App(void);
// void MountPoints(void);
void ImagePrefix(void);
void Tooltip(void);
void CleanMounts(void);
void Clean(void);
// New code
void LoadImages(void);
void LoadCommands(void);
void LoadInfoTexts(void);
void LoadMountPoints(void);
void LoadActions(const int mount_point);
void LoadInfoText(const int mount_point);
void GetModifiers(const string str, set<unsigned int> &positive, set<unsigned int> &negative) const;
vector<string> images;
vector<string> commands;
vector<string> infotexts;
vector<MountPoint> mount_points;
string image_prefix;
};
#endif /* __RESOURCE_HH */
syntax highlighted by Code2HTML, v. 0.9.1