mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-24 05:04:54 +01:00
95 lines
2.2 KiB
C
95 lines
2.2 KiB
C
|
#ifndef NULLSOFT_WASABI_TEXTBASE_H
|
||
|
#define NULLSOFT_WASABI_TEXTBASE_H
|
||
|
|
||
|
#include <api/wnd/wndclass/bufferpaintwnd.h>
|
||
|
#include <tataki/color/filteredcolor.h>
|
||
|
#include <tataki/color/skinclr.h>
|
||
|
#include <bfc/string/StringW.h>
|
||
|
|
||
|
#define TEXTBASE_PARENT BufferPaintWnd
|
||
|
|
||
|
class TextBase : public TEXTBASE_PARENT, public SkinCallbackI
|
||
|
{
|
||
|
public:
|
||
|
TextBase();
|
||
|
virtual ~TextBase();
|
||
|
|
||
|
ARGB32 GetColor(int alt=0);
|
||
|
void GetFontInfo(Wasabi::FontInfo *_font, int alt=0);
|
||
|
|
||
|
void SetTextColor(ARGB32 c, int alt=0);
|
||
|
void SetFontSize(const wchar_t *strvalue, int alt=0);
|
||
|
void SetFont(const wchar_t *name, int alt=0);
|
||
|
void SetAntialias(int a, int alt=0);
|
||
|
void SetFontAlign(int al);
|
||
|
virtual void setDblClickParam(const wchar_t *p);
|
||
|
virtual const wchar_t *getDblClickParam();
|
||
|
virtual void setRClickParam(const wchar_t *p);
|
||
|
virtual const wchar_t *getRClickParam();
|
||
|
protected:
|
||
|
/* Virtual methods to override */
|
||
|
virtual void invalidateTextBuffer()=0;
|
||
|
|
||
|
|
||
|
/*static */void CreateXMLParameters(int master_handle);
|
||
|
private:
|
||
|
StringW dblClickAction;
|
||
|
StringW rClickAction;
|
||
|
|
||
|
/* Font Info */
|
||
|
FilteredColor color[2];
|
||
|
SkinColor scolor[2];
|
||
|
int color_mode[2];
|
||
|
StringW font[2];
|
||
|
int bold[2];
|
||
|
int italic[2];
|
||
|
int antialias[2];
|
||
|
int align;
|
||
|
|
||
|
protected:
|
||
|
int fontsize[2];
|
||
|
int lpadding, rpadding;
|
||
|
int grab;
|
||
|
|
||
|
private:
|
||
|
/* XML Parameters */
|
||
|
enum
|
||
|
{
|
||
|
TEXTBASE_SETCOLOR,
|
||
|
TEXTBASE_SETALTCOLOR,
|
||
|
TEXTBASE_SETFONTSIZE,
|
||
|
TEXTBASE_SETFONT,
|
||
|
TEXTBASE_SETALTFONT,
|
||
|
TEXTBASE_SETALTFONTSIZE,
|
||
|
TEXTBASE_SETBOLD,
|
||
|
TEXTBASE_SETITALIC,
|
||
|
TEXTBASE_SETALTBOLD,
|
||
|
TEXTBASE_SETALTITALIC,
|
||
|
TEXTBASE_SETANTIALIAS,
|
||
|
TEXTBASE_SETALTANTIALIAS,
|
||
|
TEXTBASE_SETDBLCLKACTION,
|
||
|
TEXTBASE_SETRCLKACTION,
|
||
|
TEXTBASE_SETALIGN,
|
||
|
TEXTBASE_SETLPADDING,
|
||
|
TEXTBASE_SETRPADDING,
|
||
|
TEXTBASE_RCLICKPARAM,
|
||
|
TEXTBASE_DBLCLICKPARAM,
|
||
|
|
||
|
|
||
|
};
|
||
|
static XMLParamPair params[];
|
||
|
int xuihandle;
|
||
|
StringW dblclickparam;
|
||
|
StringW rclickparam;
|
||
|
protected:
|
||
|
/* Methods that TextBase overrides */
|
||
|
int setXuiParam(int _xuihandle, int attrid, const wchar_t *name, const wchar_t *strval);
|
||
|
int onInit();
|
||
|
int skincb_onColorThemeChanged(const wchar_t *newcolortheme);
|
||
|
int onLeftButtonDblClk(int x, int y);
|
||
|
int onRightButtonDown(int x, int y);
|
||
|
virtual int wantAutoContextMenu() { return rClickAction.isempty(); }
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif
|