Fixed xclass support for Fl_Window (STR #2053)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7863 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
e91fe6e6d5
commit
ffbe1b76b1
1
CHANGES
1
CHANGES
@ -1,5 +1,6 @@
|
||||
CHANGES IN FLTK 1.3.0
|
||||
|
||||
- Fixed xclass support for Fl_Window (STR #2053)
|
||||
- Fixed Caps Lock handling in X11/XIM (STR #2366)
|
||||
- Fixed handling of missing fonts in Xft (STR #2355)
|
||||
- Added alternative Xft font names (STR #2215)
|
||||
|
@ -57,11 +57,13 @@ class Fl_X;
|
||||
*/
|
||||
class FL_EXPORT Fl_Window : public Fl_Group {
|
||||
|
||||
static char *default_xclass_;
|
||||
|
||||
friend class Fl_X;
|
||||
Fl_X *i; // points at the system-specific stuff
|
||||
|
||||
const char* iconlabel_;
|
||||
const char* xclass_;
|
||||
char* xclass_;
|
||||
const void* icon_;
|
||||
// size_range stuff:
|
||||
int minw, minh, maxw, maxh;
|
||||
@ -323,8 +325,10 @@ public:
|
||||
/** Sets the icon label. */
|
||||
void label(const char* label, const char* iconlabel); // platform dependent
|
||||
void copy_label(const char* a);
|
||||
/** See void Fl_Window::xclass(const char*) */
|
||||
const char* xclass() const {return xclass_;}
|
||||
|
||||
static void default_xclass(const char*);
|
||||
static const char *default_xclass();
|
||||
const char* xclass() const;
|
||||
/**
|
||||
A string used to tell the system what type of window this is. Mostly
|
||||
this identifies the picture to draw in the icon. <I>Under X, this is
|
||||
@ -339,7 +343,7 @@ public:
|
||||
visible effect. The passed pointer is stored unchanged. The string
|
||||
is not copied.
|
||||
*/
|
||||
void xclass(const char* c) {xclass_ = c;}
|
||||
void xclass(const char* c);
|
||||
/** Gets the current icon window target dependent data. */
|
||||
const void* icon() const {return icon_;}
|
||||
/** Sets the current icon window target dependent data. */
|
||||
|
@ -1292,6 +1292,9 @@ void Fl_Window::hide() {
|
||||
|
||||
Fl_Window::~Fl_Window() {
|
||||
hide();
|
||||
if (xclass_) {
|
||||
free(xclass_);
|
||||
}
|
||||
}
|
||||
|
||||
// FL_SHOW and FL_HIDE are called whenever the visibility of this widget
|
||||
|
@ -40,6 +40,8 @@
|
||||
#include <FL/fl_draw.H>
|
||||
#endif
|
||||
|
||||
char *Fl_Window::default_xclass_ = 0L;
|
||||
|
||||
void Fl_Window::_Fl_Window() {
|
||||
type(FL_WINDOW);
|
||||
box(FL_FLAT_BOX);
|
||||
@ -178,6 +180,53 @@ Fl_Window *Fl_Window::current() {
|
||||
return current_;
|
||||
}
|
||||
|
||||
/** Returns the default xclass */
|
||||
const char *Fl_Window::default_xclass()
|
||||
{
|
||||
if (default_xclass_) {
|
||||
return default_xclass_;
|
||||
} else {
|
||||
return "FLTK";
|
||||
}
|
||||
}
|
||||
|
||||
/** Sets the defaul xclass */
|
||||
void Fl_Window::default_xclass(const char *xc)
|
||||
{
|
||||
if (default_xclass_) {
|
||||
free(default_xclass_);
|
||||
default_xclass_ = 0L;
|
||||
}
|
||||
if (xc) {
|
||||
default_xclass_ = strdup(xc);
|
||||
}
|
||||
}
|
||||
|
||||
/** Set the xclass for this window */
|
||||
void Fl_Window::xclass(const char *xc)
|
||||
{
|
||||
if (xclass_) {
|
||||
free(xclass_);
|
||||
xclass_ = 0L;
|
||||
}
|
||||
if (xc) {
|
||||
xclass_ = strdup(xc);
|
||||
if (!default_xclass_) {
|
||||
default_xclass(xc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Return the XClass for this window, or a default. */
|
||||
const char *Fl_Window::xclass() const
|
||||
{
|
||||
if (xclass_) {
|
||||
return xclass_;
|
||||
} else {
|
||||
return default_xclass();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id$".
|
||||
|
Loading…
x
Reference in New Issue
Block a user