Commit graph

1103 commits

Author SHA1 Message Date
Pavel Labath
d338e6c003 Signal::connect now also accepts an already-constructed Slot
This way we can use Commands as signal handlers out-of-the-box.
2011-09-14 19:39:10 +02:00
Pavel Labath
bca20c5db4 Make FbTk::Command inherit from FbTk::Slot
Command offers a subset of functionality and could be completely removed at some point.
2011-09-14 19:39:10 +02:00
Pavel Labath
e4157821fc Add a reset() function to FbTk::RefCount
to make it's interface more compatible with other smart pointers.
2011-09-14 19:39:10 +02:00
Pavel Labath
0f85ade9be Mark FbTk::StringConvertor as NotCopyable 2011-09-14 19:39:10 +02:00
Pavel Labath
7bca844581 Prepare the Slot classes to be used independently of Signals
Added some polish around them and, to mark this special occasion, moved them out of the SigImpl
namespace.

PS: This partially reverts commit 0775350fee, since I had to
reintroduce ReturnType template parameter, because it will be used in other places. But Signal classes
remain without the ReturnType, because I still cannot imagine how would it be used.
2011-09-14 19:39:10 +02:00
Pavel Labath
0a40d1caf3 Add template copy constructor to FbTk::Refcount
and remove a an "almost" copy constructor (almost, because it takes a non-const reference
parameter) which was useless.
2011-09-14 19:39:10 +02:00
Peter Korsgaard
b9e9eb4e44 FbString: fix build without iconv
Commit 690d926 (introduced FbTk::BidiString) broke building without
HAVE_ICONV, because of wrong variable name and use of iconv_t type.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-09-11 17:18:30 +02:00
Pavel Labath
16c90dc19f Make SignalTracker always disconnect itself from Signals
previously, the tracker disconnected itself only when the caller passed withTracker = true to the
leave() function. However, the default value was for the parameter was false.

Non disconnecting from signal when stopping tracking creates very dangerous situation because the
signal still holds a pointer to the tracker. This resulted in a segfault when exiting fluxbox,
because the tracker (FluxboxWindow) got destroyed before the signal (BScreen::focusedWindowSig),
and the signal was using an invalid pointer when it tried to disconnect itself from the tracker.

Instead of setting withTracker to true by default or changing all invocations of leave(), I
decided to make the tracker disconnect itself unconditionally because I could not find a use case
for the opposite behaviour.

PS: This message is in fact longer than the actual commit.
2011-05-10 13:00:46 +02:00
Pavel Labath
7525ca9f77 Remove all trace of Observers and Subjects
this marks the completion of the transition to FbTk::Signal
2011-05-10 13:00:46 +02:00
Pavel Labath
19ac8e40d8 Added FbTk::MemFunBind - a functor which binds all arguments of a function 2011-05-10 13:00:45 +02:00
Pavel Labath
6cfa087536 Make FbTk::MemFun[12] inherit from std::unary/binary_function
this way, they can be used as inputs to std::bind1st and friends
2011-05-10 13:00:45 +02:00
Pavel Labath
2024f258b6 Make FbTk::MemFun[0-3] use their ResultType parameter
previously they declared the parameter, but ignored the return value of the member function. I've
changed it so they pass the return value, if it is not void. MemFunSelectArg didn't have the
ReturnType template parameter, so I added it for consistency. Since I was already editing the, I
made all the operator()s const.
2011-05-10 13:00:45 +02:00
Pavel Labath
0775350fee Last round of simplification of Signal/Slot classes
- merged all the common stuff from 0,1,2,3 argument versions into one common base class
- removed ReturnType template parameter as it was instantiated with "void" everywhere and the
  current ignores the return value of the callbacks anyway
2011-05-10 13:00:45 +02:00
Pavel Labath
bef2039d2c Don't crash when a slot is deregistered in the middle of signal processing
this was possible (and used) with FbTk::Subject, but the implemetation of FbTk::Signal didn't
support it, which made it impossible to continue with conversion.
2011-05-10 13:00:45 +02:00
Pavel Labath
144d716a42 Simplify Slot.hh
Replace CallbackHolder, FunctorHolder and SlotHolder with a (smaller) set of polymorphic classes.
SignalHolder now stores a (smart) pointer to the class.
2011-05-10 13:00:45 +02:00
Pavel Labath
4b47675441 Make RefCount<> more sensible
the previous version of operator*() made no sense. E.g., it violated the invariant
(*ptr).foo <=> ptr->foo. The dereferencing operator now returns a reference to the pointed-to
object, rather than a pointer to it.

I also added a bool conversion operator, which can be used in testing the NULL-ness of the
pointer. Anyone wondering if that could be done in a simpler way is encouraged to read
<http://www.artima.com/cppsource/safebool.html>.

And, finally, I removed the mutable flag from the m_data member, since it does not need it.
2011-05-10 13:00:45 +02:00
Pavel Labath
fa15400cc2 Remove the Observer dependency from FbTk::Menu 2011-05-10 13:00:45 +02:00
Pavel Labath
f7d7dfd2a8 Convert FbTk::Theme::reconfigSig and friends to the new Signal system
I removed the const versions of reconfigSig() in the process since FbTk::Signal has no const
methods anyway.
2011-05-10 13:00:45 +02:00
Pavel Labath
54230c9a44 Simplify FbTk::Signal template classes a bit
basically, i just got rid of Signal[0-3] classes and moved their contents to the appropriate
specialization of FbTk::Signal

also, this fixes the
no matching function for call to 'MemFunIgnoreArgs(FbTk::Signal<void, FbTk::SigImpl::EmptyArg,
FbTk::SigImpl::EmptyArg, FbTk::SigImpl::EmptyArg>&, void (FbTk::SigImpl::Signal0<void>::*)())'
error i had in the following commit.
2011-05-10 13:00:44 +02:00
nacitar sevaht
1dacf57d20 Can check CARDINAL properties in CLIENT PATTERNS
Introduces a new member function, FbWindow::cardinalProperty()

This change also changes other code that previously used
FbWindow::property() to do the same thing as the new function; this
reduces code duplication.

There are still some bits of code (Ewmh.cc, extractNetWmIcon()) that use
FbWindow::property() to retrieve XA_CARDINAL values, but as the new
method is designed for getting a _single_ property, and that code uses
FbWindow::property() to retrieve the number of values present, and then
grab all of them; it's a different use case.  I opted to not try to make
cardinalProperty() into some monolithic all-purpose cardinal method;
FbWindow::property() works just fine for that.

This change also adds an optional (default=NULL) boolean to
FbWindow::textProperty and friends that allows the caller to determine
whether or not a value was actually retrieved.  This was necessary for
integrating FbWindow::cardinalProperty with the codebase, and it seemed
to fit with FbWindow::textProperty as well.  Prior to this change, if
you got a return value of "", you wouldn't know if you successfully
retrieved the value which happened to be blank, or if you failed to
retrieve the value.  Now, you can pass the address of a boolean if you
so choose in order to differentiate these situations; the same applies
to the new FbWindow::cardinalProperty().
2011-05-08 07:48:03 +02:00
Pavel Labath
a83cedf37e Fix a pair of warnings reported by clang 2011-04-11 08:37:58 +02:00
Pavel Labath
91958279d3 Menu.cc: send debug output to cerr, make the output more sensible 2011-04-11 08:31:52 +02:00
Daniel Diaz
d28e105075 compile fix: added <cstdlib> to provide declaration for 'size_t' (gcc-4.6.x likes it that way) 2011-03-28 09:06:22 +02:00
Mathias Gumz
21022a1952 cosmetics 2011-03-23 12:03:17 +01:00
Mathias Gumz
9086ccafbe compile fix: sunCC again, wants a compile time constant for arrays 2011-03-23 12:03:08 +01:00
Mathias Gumz
d2e7feaa85 bugfix: submenus didn't hide if a delay was set
use the FbTk::Timer API correctly, bug(s) introduced by

   1f0adef4da
   e685117941
2011-02-25 18:39:48 +01:00
Mathias Gumz
49623390b6 little helper function 'isTitleVisible()' for FbTk::Menu 2011-02-24 11:17:48 +01:00
Mathias Gumz
9616a676d8 renamed FbTk::XLayer to FbTk::Layer and FbTk::XLayerItem to FbTk::LayerItem 2011-02-23 22:49:27 +01:00
Mathias Gumz
813e6c4402 disabled overhead base classes 'FbTk::Layer' and 'FbTk::LayerItem'
had to add <algorithm> at various other files as a result of this change.
2011-02-23 22:46:13 +01:00
Mathias Gumz
c859ae3987 irrelevant 'virtual' destructor 2011-02-23 21:47:16 +01:00
Mathias Gumz
32cc4ba69b code deduplication 2011-02-23 21:45:50 +01:00
Mathias Gumz
6fb2960756 moved rarely used 'cpccpc' out of class declaration 2011-02-22 22:33:56 +01:00
Mathias Gumz
d11aa42ace bugfix: consistent use of 'int' for alpha values (#3187373)
WindowMenuAccessor returned strange alpha values if compiled
with 'g++ -Os'; unholy black magic happens if template<int> faces
functions returning only 'usigned char'.
2011-02-22 22:07:39 +01:00
Mathias Gumz
b7e84104a6 bugfix: render 'sunken' gradients correctly 2011-02-22 15:53:18 +01:00
Mathias Gumz
3c7407beb4 use FbTk::StringUtil API 2011-02-22 15:18:53 +01:00
Mathias Gumz
84a81a1ac1 renamed Texture:DEFAULT_BEVEL to Texture::DEFAULT_LEVEL 2011-02-22 15:18:20 +01:00
Mathias Gumz
0569849c6d cosmetics 2011-02-22 15:17:15 +01:00
Mathias Gumz
78adeb2919 Bugfix: don't render textures with dimension of 0
At least 'invertRGB()' does not like 'width' or 'height' being 0.
341b2f43e5 was triggered by this problem as well.
2011-02-22 12:32:16 +01:00
Mathias Gumz
341b2f43e5 Fix bug: 'src_image' might be NULL if width||height are 0 (#3188223)
With ROT90-SystemTray fluxbox crashed. It is a bit unclear of where
to catch pixmaps / windows with either width or height equal to 0; IMHO
this needs more investigation.
2011-02-21 19:21:38 +01:00
Henrik Kinnunen
34bf3b4833 Fixed a possible crash when using a slot m_holder = 0 2011-02-20 15:48:42 +01:00
Mathias Gumz
e868ff5928 bug fix: make fluxbox work under nxserver, closes #2813828
nxserver-3.x creates a XExposeEvent for the unmapped FbTk::Menu(), which is
not configured completely yet (hence unmapped). this causes a call to
FbTk::Menu::clearItem() which then uses a value of 0 for m_rows_per_column
to divide the current index which triggers a SIGFPE.

it is still unclear, why nxserver-3.x creates the XExposeEvent for the
unmapped (menu) window. doing nothing if the menu is unmapped 'fixes'
the problem for now.

many thanks to Lars Engels (bsd-geek.de) to assist me in debugging this
issue.
2011-01-18 21:43:41 +01:00
Mathias Gumz
cc2774871a removed useless include statements
'typeinfo' was needed for RTTI in isItemSelectable() (see last commit)
'algorithm' is already included some lines above
2011-01-15 21:49:37 +01:00
Mathias Gumz
1f0adef4da better use of API, no need for 'timeval' in Menu 2011-01-15 21:38:56 +01:00
Mathias Gumz
05a52116df MenuItem::isEnabled() is sufficient to decide Menu::isItemSelectable()
MenuSeparator is never enabled since it returns always 'false' in its
implementation of isEnabled(). no need to use RTTI imho.
2011-01-15 21:37:45 +01:00
Mathias Gumz
bb480030f5 small refactoring of FbTk/Menu code
* removed useless struct _menu
* code deduplication via renderMenuPixmap()
* improved documentation:
   - 'sublevel' actually means 'column'
   - 'persub' means 'row_per_column'
2011-01-15 21:31:37 +01:00
Mathias Gumz
ae7a54a4b6 bugfix: ' floating point exception' due wrongly placed code
while integrating the old 'getSqrt()' function into the 'bsqrt()'
function i misplaced some code. this lead to 'r' being 0 on the
first run. doh.
2010-09-21 00:04:46 +02:00
Mathias Gumz
87b45bd0d1 bugfix: avoid naive use of 'putenv' by providing 'FbTk::App::setenv()'
to quote from 'man putenv':

   The string pointed to by string becomes part of the environment,
   so altering the string changes the environment.

so, using putenv like

   {
      std::string foo("FOO=bar");
      putenv(foo.c_str());
   }

is wrong and leads to a potentially corrupted environment. valgrind
complaint correctly.

FbTk::App seems to be the appropriate place to hold '::seten()'
because it alters the environment of the application.
2010-09-17 23:43:24 +02:00
Mathias Gumz
87cffef7f5 request explicitly as many elements for the gradient tables as we need
the next step is to not use 'unsigned int' and then only store 'chars'
in it, maybe even using RGBA data instead of separated arrays for
r, g and b.
2010-09-17 23:32:02 +02:00
Mathias Gumz
786eef6e39 bugfix: forgot to resize 'pixels' before putting values into it (facepalm) 2010-09-17 23:26:56 +02:00
Mathias Gumz
e84c64f7be lots of code cleanup, reordering, trimming public API, bugfixes
## FbTk/ImageControl.hh:

* moved 'getSqrt()' over to TextureRender.cc because it is used only there
* removed unused members m_root_window
* use std::vector<> for colors and for the gradient buffers.

## FbTk/ImageControl.cc:

* fixed memory leak in '~ImageControl', 'pixels' where not deleted[]
  at all. switched to std::vector, non-issue anymore.
* moved identical code into functions 'allocateUnallocatedColors', 'initColortables'

## FbTk/TextureRenderer:

* removed 'from', 'to', 'interlaced' from class, only used in
  'renderGradient()' and are actually part of the given
  texture.
* removed 'xtable', 'ytable' from class, only used in
  'renderGradient()'
* removed 'colors' from the class, is part of 'control'
* moved render actions (invert, bevel1, bevel2, *gradient), they need more
  love but for now this is sufficient
2010-09-17 15:34:12 +02:00
Mathias Gumz
603b36a2cc use FbTk::API to reduce code duplication 2010-09-17 14:46:01 +02:00
Mathias Gumz
12e1ef7826 code deduplication by using <algorithm> and FbTk/STLUtil.hh 2010-09-15 02:07:09 +02:00
Mathias Gumz
52f614b598 bugfix: 'reset' nr_shapes to '0' after last instance of 'Shape' 2010-09-15 01:23:56 +02:00
Mathias Gumz
2b62cf9733 cleanup and code deduplication
* ClientPattern.cc: make compiler happy (complaints about XPROP not handled in switch)
* FbTk/FbPixmap.cc FbTk/StringUtil.cc: signed vs unsigned
* FbTk/FbString.cc: missing return
* WinClient.cc: create atoms only once; use helper function
* Window.cc: use a helper function
2010-09-15 01:22:01 +02:00
Mathias Gumz
c6047e9eba use one array instead of two to hold both 'names' and 'atoms' for the rootwindow 2010-09-14 16:59:05 +02:00
Mathias Gumz
f39bcbd93c bugfix: create the corner pixmaps only once per screen
for each window (windows, menue etc) the initCorners() function of
FbTk/Shape.cc was called (which is ok). On each call the corner pixmaps
(of the Screen the window belongs to) were created and destroyed the
formerly created pixmaps. this is not needed.
2010-09-14 16:58:08 +02:00
Mathias Gumz
75b9a4ed72 bugfix: free the shape-corners on the last used 'Shape'
the global 's_corners' vector was still used on an application shutdown
(including ctrl-c SIGINT). depending on when 's_corners' was created on
the stack this could lead to an exception ('pure virtual called') while
trying to free the 'FbPixmaps' without having a valid
'FbTk::Application::instance()' left.
2010-09-14 16:54:08 +02:00
Mathias Gumz
4e2c7e2167 moved helper struct TextPropPtr into anonymous namespace 2010-09-10 16:36:17 +02:00
Mathias Gumz
7fdb0676a7 bugfix: initialize the Shape of a menu AFTER we created the window for the menu
on startup a lot of 'Fluxbox: X Error: BadDrawable (invalid Pixmap ...)' occured.
this was caused by using an empty 'Window' to create the shape.
2010-09-09 23:23:33 +02:00
Mathias Gumz
77f39235cf added FbTk::Util::clamp() and simplified related code 2010-09-09 15:31:54 +02:00
Mathias Gumz
e685117941 simpler to use FbTk/Timer api 2010-09-09 12:47:38 +02:00
Mathias Gumz
b76be98227 improved extract*Number functions from FbTk/StringUtil.cc 2010-09-08 21:42:48 +02:00
Mathias Gumz
6ecfa0ef3e cosmetic fix: looks like a copyNpaste issue 2010-09-08 20:48:37 +02:00
Mathias Gumz
26c1cd0cee code simplification 2010-09-08 20:48:01 +02:00
Mathias Gumz
690d926ac4 introduced FbTk::BidiString
a 'BidiString' holds both the logical content and the visual reordered
version of the content of a string. this helps to reduce the number of
calls to reorder the string before drawing it (as introduced in the patch
from Ken Bloom) and to be more consistent in menus and textboxes (drawing
cursors and underlining text).
2010-09-08 20:17:21 +02:00
Mathias Gumz
8feb0b8c83 avoid constructing new strings implicit 2010-09-05 10:49:05 +02:00
Mathias Gumz
83656fc0e8 cosmetic 2010-09-05 10:47:12 +02:00
Mathias Gumz
63f9c8c1a2 reuse temporary memory for reencoding / reordering fribidi-strings 2010-09-05 10:47:01 +02:00
Ken Bloom
ea98db4140 added support for bidirectional text 2010-09-04 15:01:33 +02:00
Mathias Gumz
b8987fc623 code simplification / deduplication
* parse the string only once for a bunch of chars to check instead of
  starting over again and again from the beginning, created a helper
  function to do this (FbTk::StringUtil::findCharFromAlphabetAfterTrigger)

* put same code into a function (setClockModeLabel())

* use much simpler code to switch between 12h and 24h mode and replace
  the fmt-switches
2010-08-24 17:30:24 +02:00
Jim Ramsay
a3b063292c bugfix: another crash when cleaning up signals
While 769130f51a did fix one issue, it introduced another by changing the
logic related to the new SignalTracker.  The original logic (introduced in
9ad388c5bf) was:
  -> in 'leave(Signal)', only call 'disconnect'
  -> in 'leaveAll()', call 'disconnect' and 'disconnectTracker'
But 769130f51a inverted this, calling 'disconnectTracker' in both cases but
only 'disconnect' in the 'leaveAll()' case, which would leave unattached signals
around after calling 'leave(Signal)'.

This fix not only repairs the logic, but renames the ambiguous 'disconnect'
boolean to something more explicit: 'withTracker'.
2010-07-14 11:36:00 -04:00
Mathias Gumz
769130f51a bugfix: do not use invalid iterators while looping thru a container which gets destroyed 2010-05-23 15:58:35 +02:00
Mathias Gumz
fbcdd34b22 mostly cosmetic fixes, mainly discovered by 'clang --analyze'
reordering of Resource-related stuff was because of

   "error: explicit specialization of 'getString' after instantiation"

complaints.
2010-05-23 12:25:47 +02:00
Mathias Gumz
ff9c68e247 fixed potential memory leak 2010-05-16 14:25:59 +02:00
Mathias Gumz
17b21635a2 cleanup created corner pixmaps, moved the initCorners() function out of the class 2010-05-16 14:25:36 +02:00
Mathias Gumz
04739b2d1f initialize all member variables, otherwise unclean state in some circumstances
(valgrind complained a lot about ::updateGeometry() accessing uninitialized variables)
2010-05-16 14:24:34 +02:00
Mathias Gumz
bca59851f3 bugfix: crash when cleaning up signals
22fa5f544b was not fixing anything, the real cause is that the
SignalHolder still has a reference to a not existing Tracker.
2010-05-07 09:36:30 +02:00
Mathias Gumz
615e9cec32 compile fix: FD_ZERO (sys/select.h) on solaris wants to use memset(); closes #2997117 2010-05-06 21:19:31 +02:00
Mathias Gumz
22fa5f544b bugfix: added missing 'virtual' keyword, otherwise fluxbox crashes with 'pure virtual method called' 2010-05-06 20:25:47 +02:00
Henrik Kinnunen
9ad388c5bf Added Tracker interface for SignalHolder.
This is used by SignalTracker so Signals can disconnect from it when
they die.
2010-03-26 18:04:58 +01:00
Henrik Kinnunen
1cae9f22f8 Minor fix for argument reference in MemFunSelectArgImpl 2010-03-26 18:00:23 +01:00
Henrik Kinnunen
5bc782561b Initialize all variables in FbWindow 2010-03-26 17:28:18 +01:00
Henrik Kinnunen
f150f727b2 Added SelectArg.hh to Makefile.am 2010-03-19 02:32:17 +01:00
Henrik Kinnunen
ceff86b794 Added SelectArg and MemFunSelectArg*
The MemFunSelectArg* functions can be used to select
a specific argument from a signal. For example this would
select the string argument as argument to the callback:

Signal<void, int, float, string> signal;
signal.connect(MemFunSelectArg2(obj, &Object::takesOneStringArg));
signal.emit(10, 3.14, "hello");

...

void Object::takesOneStringArg(const string& value) {
...
}
2010-03-19 02:23:41 +01:00
Henrik Kinnunen
68e90ab84f Added missing RelaySignal.hh to Makefile.am 2010-03-18 19:47:14 +01:00
Henrik Kinnunen
02bb93590c Added FbTk::relaySignal, which relays new signals to old Subject type signals. 2010-03-18 19:35:19 +01:00
Henrik Kinnunen
18570d83a2 minor cleaning in MemFun.hh 2010-03-18 10:56:15 +01:00
Henrik Kinnunen
0504de454a Added MemFunIgnoreArgs which ignores aditional arguments.
For example connecting a function that takes two arguments
to a signal that emits three arguments:
struct Functor {
    void show(int a, int b);
};
Functor f;
Signal<void, int, int, int> s3;
s3.connect(MemFunIgnoreArgs(f, &Functor::show));
2010-03-18 10:45:33 +01:00
Mathias Gumz
254bc96daf fixed little preprocessor error 2010-02-27 10:33:06 +01:00
Mathias Gumz
c65dc30fc2 improved documentation of the code 2010-01-19 20:20:13 +01:00
Mathias Gumz
46261a8284 implemented 'MoveN' and 'ClickN' support in keys file.
the hardcoded 'OnTitlebar Mouse1 :Raise' (see Window.cc, FluxboxWindow::buttonPressEvent())
is disabled for now, should be added to fluxbox-update_configs
2009-12-18 08:05:07 +01:00
Mark Tiefenbruck
8def80cec3 reportedly fix compiling on gcc 4.4 on Solaris 2009-10-08 00:18:43 -07:00
Mathias Gumz
6645688880 definition should match declaration 2009-10-03 13:53:13 +02:00
Mathias Gumz
69bf3965b7 compile fixes for sun compiler 5.10: class Layer conflicts with class FbTk/Layer .. so just a little renaming 2009-10-03 13:53:00 +02:00
Mathias Gumz
f2ea245f1d compile fixes for sun compiler 5.10: complains about 'not beeing able to initialize this from that' 2009-10-03 13:38:41 +02:00
Mathias Gumz
261ba26d27 another little helper for FbTk::StringUtil: extractNumber() 2009-10-01 21:16:46 +02:00
Mathias Gumz
4eeac74a3d removed unused code 2009-10-01 08:58:56 +02:00
Mathias Gumz
65a45dc65f compile fix: missing include guards 2009-10-01 08:57:46 +02:00
Mathias Gumz
c4c96ec830 simpler code 2009-10-01 08:57:31 +02:00
Mathias Gumz
078438e993 compile fix: missing headers (sun compiler complained about) 2009-10-01 08:41:04 +02:00
Mathias Gumz
6c0739e889 compile fix: using correct forward declaration for template classes
we got this 'Warning (Anachronism): Old syntax for explicit specialization or
 instantiation ignored.' with the solaris compiler
2009-10-01 07:34:37 +02:00
Mathias Gumz
38ef6e5155 made code simpler 2009-10-01 07:07:07 +02:00
Mathias Gumz
69de5b5a00 cosmetic fix: removed warning about double ';' after command
static xyz inside a anonymous namespace is not really needed, so i removed the namespace
to get rid of the compiler warning. it's more convinient for the developer
to put ';' after that REGISTER_COMMAND_PARSER
2009-09-30 21:08:55 +02:00
Mathias Gumz
f8c61a1ba2 compile fix: use the correct format string to parse the number 2009-09-30 21:05:02 +02:00
Mathias Gumz
12fe9ca7a8 compile fix: sun compiler complains about missing std::mem_fun_t<> 2009-09-30 21:03:25 +02:00
Mathias Gumz
884db973bb cosmetic fixes: removed redundant ';' + some whitespaces 2009-09-30 21:02:24 +02:00
Mathias Gumz
4663a9591e bugfix: 'HideMenus' command did not work if the user 'opened' an empty submenu.
'openeing' such an empty submenu lead to an already hidden menu referenced by
the 'shown' pointer
2009-09-23 22:21:13 +02:00
Mark Tiefenbruck
ca9e2e0d15 allow navigating multi-column menus with left and right arrows 2009-08-08 10:20:45 -07:00
Mark Tiefenbruck
9f59ce18a2 change default toolbar tools to:
prevworkspace, workspacename, nextworkspace, iconbar, systemtray, clock
2009-06-28 10:54:55 -07:00
Mark Tiefenbruck
c1d9ae5068 fix changing iconbar alignment and button width from init file 2009-06-28 09:39:28 -07:00
Mark Tiefenbruck
659af0eb75 allow 'Ctrl' and 'Alt' as modifiers in keys file 2009-06-28 09:12:02 -07:00
Mark Tiefenbruck
4e586cc172 previous fix for reverting iconbar to relative broke external tabs 2009-06-28 08:22:51 -07:00
Mark Tiefenbruck
fe92b6b39b revert to relative iconbar alignment when too many windows are open 2009-06-28 03:40:50 -07:00
Jim Ramsay
ff6a46391f Error on incomplete MacroCmd key command 2009-05-26 16:27:31 -04:00
Jim Ramsay
a56e409b1f Exit loop for unterminated { } pair 2009-05-26 16:27:31 -04:00
Mark Tiefenbruck
e770016660 remove unnecessary xpm.h include in imlib code 2009-02-24 14:22:18 -08:00
Mark Tiefenbruck
9bd6401013 ignore XRandr events that don't actually change the screen size 2008-10-14 19:40:33 -07:00
Mark Tiefenbruck
5b07791ed4 merge menuDelay and menuDelayClose options 2008-10-12 21:55:03 -07:00
Mathias Gumz
93924af160 using namespace instead of a useless class 2008-10-09 09:38:42 +02:00
Mark Tiefenbruck
dda95bf106 allow relative path for background images in style files 2008-10-06 18:16:26 -07:00
Mark Tiefenbruck
c033c201c4 remove menu modes 2008-10-04 19:49:28 -07:00
Mark Tiefenbruck
c91926cf71 fix flickering of shaped windows on focus changes 2008-10-03 20:48:38 -07:00
Mark Tiefenbruck
9df75ed7a6 fix restacking 2008-10-01 02:29:59 -07:00
Mark Tiefenbruck
269459e1aa don't flash original window in the middle of cycling focus 2008-10-01 01:38:56 -07:00
Henrik Kinnunen
f2c8868724 Merge branch 'master' of fluxbox@git.fluxbox.org:fluxbox
Conflicts:

	ChangeLog
2008-09-28 10:53:16 +02:00
Henrik Kinnunen
bcf37890b6 Change focused signal to use the new signal system 2008-09-28 10:46:49 +02:00
Mark Tiefenbruck
04a1d2a83b don't let KeyRelease events propagate to windows 2008-09-28 01:26:21 -07:00
Mark Tiefenbruck
01aa0b6f8f fix some goofy code 2008-09-27 00:59:12 -07:00
Mark Tiefenbruck
bb70b14432 fix rounded corners on restart 2008-09-25 20:51:37 -07:00
Mark Tiefenbruck
3f33657fb7 fix active menu item when inserting or removing other items 2008-09-21 22:32:02 -07:00
Henrik Kinnunen
f5113e2ec1 no virtuals needed Signals, added leaveAll for SignalTracker which must be used before all screens dies. 2008-09-21 12:02:49 +02:00
Mark Tiefenbruck
4c11204716 fix a few things with new signal code 2008-09-20 23:46:23 -07:00
Henrik Kinnunen
e4d4717703 Added new Signal/Slot system in FbTk
This is suppose to replace the obsolete Subject/Observer classes.
See the src/tests/testSignals.cc for basic usage.
2008-09-18 22:24:35 +02:00
Henrik Kinnunen
91408776f0 Fixed a pixmap resource leak with selected pixmap in menus.
menu.hilite.selected.pixmap and menu.selected.pixmap was not
deleted while switching between non-pixmap styles and pixmap styles.
2008-09-14 21:36:16 +02:00
Henrik Kinnunen
8fb1722389 included some missing files in distribution 2008-09-01 20:18:59 +02:00
Mark Tiefenbruck
13a73a78f6 highlight the nearest menu item when the current one is disabled, and add separators to focus model menu 2008-09-01 11:00:04 -04:00
Mark Tiefenbruck
65c5fb3237 make clicking on the border of the toolbar activate toolbar buttons 2008-08-23 17:14:31 -07:00
Mark Tiefenbruck
1fe1da5ca0 fix parsing of Delay command 2008-08-21 12:53:32 -07:00
Mark Tiefenbruck
75850d8b60 shift+enter wasn't sending right click if the menu item had a submenu 2008-08-19 09:36:08 -07:00
Mark Tiefenbruck
a30a14ef36 add top, left, right, and bottom center tab placement options 2008-08-18 01:45:44 -07:00
Mark Tiefenbruck
72fd5e03a4 revert focus when closing dialogs 2008-08-16 06:30:09 -07:00
Mark Tiefenbruck
38654bae45 some cleanup 2008-08-16 05:54:07 -07:00
Mathias Gumz
31b47e7814 cleanup of some files 2008-08-14 07:53:38 +02:00
Mark Tiefenbruck
7970388238 add selection box to various "choose one of these" menu items 2008-08-03 21:59:14 -07:00
Mark Tiefenbruck
c492daf2d9 remove dithering code 2008-06-26 12:41:43 -07:00
Matthias S. Benkmann
6509fe0cac fix some memory leaks and uninitialized values 2008-06-07 06:14:23 -07:00
Mark Tiefenbruck
ad6a7e48f4 add new command line option -list-commands 2008-06-03 01:07:14 -07:00
Mark Tiefenbruck
bfaec62d79 remove some unnecessary architecture 2008-06-03 00:15:37 -07:00
Mark Tiefenbruck
85a44db6c6 reset typeahead when adding/removing items in the menu 2008-05-30 02:02:41 -07:00
Mark Tiefenbruck
46bca62a9c move FluxboxWindow::applyDecorations() to FbWinFrame 2008-05-24 01:03:59 -07:00
Matteo Galiazzo
af0f241954 don't save rc in SetStyle command if loading the style fails 2008-05-14 01:40:53 -07:00
Mark Tiefenbruck
93b0c5322a refactor menu reloading, added FbTk::AutoReloadHelper 2008-05-11 17:22:40 -07:00
Matteo Galiazzo
4a3be045b2 add tooltips for iconbar buttons when title is too long to fit 2008-05-05 05:05:52 -07:00
Henrik Kinnunen
80b10f7772 Added SimpleObserver class.
This class works in the same way as the SimpleCommand class.
Use it with the makeObserver function.
It calls the receiver's member function when the subject sends
a signal.
2008-04-27 21:22:18 +02:00
Thomas Orgis
1e2ab2f3ed some fixes for gcc 3.4 2008-04-21 15:43:10 -07:00
Mark Tiefenbruck
26dafdafbe fix highlighted menu item on mouse out 2008-02-08 18:36:06 -08:00
Mark Tiefenbruck
b7eee2350d fix rotation 2008-02-03 07:37:01 -08:00
Mathias Gumz
9cb78eaa3b reordering 2008-01-28 08:41:42 +01:00
Mark Tiefenbruck
70a24b992c don't require final {} on :If 2008-01-24 04:03:04 -08:00
Simon Bowden
7b055cc54a Fix missing destructor warning 2008-01-18 20:29:09 +11:00
Mark Tiefenbruck
1d4bea8a2d Merge branch 'master' of fluxbox@gitfbox:fluxbox 2008-01-18 00:33:47 -08:00
Mark Tiefenbruck
3a5fd7342d use function pointer for CommandParser::Command 2008-01-17 14:16:58 -08:00
Mathias Gumz
f6c292a406 split Text.hh into Orientation.hh and TextUtils.{cc,hh} 2008-01-15 08:45:57 +01:00
Mathias Gumz
e1db89e2d7 moved code a bit around, cleaned up some classes 2008-01-14 23:27:00 +01:00
Mark Tiefenbruck
5b0806f1cb forgot to add this 2008-01-11 02:46:06 -08:00
Mark Tiefenbruck
9f2f65a698 make FbTk::Command a template class, split parsing information out of ObjectRegistry 2008-01-10 23:41:22 -08:00
Mark Tiefenbruck
ac1bd7e098 update code to use ThemeProxy 2008-01-04 17:39:19 -08:00
Mark Tiefenbruck
60ba709c2f add a level of indirection to themes 2008-01-04 01:06:38 -08:00
Mark Tiefenbruck
9c105111d2 remove old svn $Id$ tags 2008-01-03 17:34:12 -08:00
Mathias Gumz
bf15250292 merged 2008-01-03 07:56:59 +01:00
Mathias Gumz
b73411a95f moved seldom used code to where it is actually used, no need to include code into compilation when its not needed 2008-01-02 22:44:16 +01:00
Mark Tiefenbruck
6ea1ed8cfa fix border width on synthetic ConfigureNotify events 2008-01-01 19:10:38 -08:00
Mark Tiefenbruck
72d2f0e481 fix compatibility with older gcc versions 2007-12-30 14:58:41 -08:00
Mathias Gumz
04cd2fd14c removed some unneeded headers 2007-12-30 16:32:53 +01:00
Mark Tiefenbruck
4cc810b0d3 remove some (hopefully) unneeded header includes 2007-12-29 22:44:11 -08:00
Mathias Gumz
de6d340ba3 forgotten inlines from previous round 2007-12-30 01:36:37 +01:00
Mathias Gumz
e1f362ae76 'inline' in class declaration is implicitly inline 2007-12-29 22:38:53 +01:00
Mark Tiefenbruck
8e96ffb74b moved DelayedCmd from Screen.cc to FbTk/Timer.cc, added it to the keys file 2007-12-28 01:19:33 -08:00
Mark Tiefenbruck
0f6b73f36a move shape handling from FbMenu to FbTk::Menu 2007-12-28 01:14:19 -08:00
Mark Tiefenbruck
2940869cd7 merge MenuTheme with FbTk::MenuTheme 2007-12-27 23:16:17 -08:00
Mark Tiefenbruck
62bcfaf0e4 move Shape to FbTk 2007-12-27 22:52:48 -08:00
Mark Tiefenbruck
0ec165e85b move STLUtil to FbTk 2007-12-27 22:22:38 -08:00
Mark Tiefenbruck
32eb2a148e move RegExp to FbTk 2007-12-27 22:15:06 -08:00
Mark Tiefenbruck
39224b0142 move Parser to FbTk 2007-12-27 21:52:00 -08:00
Mark Tiefenbruck
e8a2f155e8 moved Container to FbTk 2007-12-27 21:47:55 -08:00
Mark Tiefenbruck
00ceefd884 moved BorderTheme and TextTheme to FbTk 2007-12-27 20:39:31 -08:00
Mark Tiefenbruck
b5c354b994 architecture astronomy 2007-12-27 13:55:24 -08:00
Mark Tiefenbruck
1f5cd12fac simplify the window transparency menu and handling a bit 2007-12-26 20:42:10 -08:00
Mark Tiefenbruck
f5024351e7 stupid & 2007-12-26 13:50:44 -08:00
Mark Tiefenbruck
f3790fb3e4 revert previous patch until it can be fixed 2007-12-26 13:44:55 -08:00
Mark Tiefenbruck
b2546389a5 changing focusnew/mousefocus should affect windows that are already open 2007-12-26 13:31:55 -08:00
Mark Tiefenbruck
9daf464b28 fix showing program icons with depth=1 in menus 2007-12-24 21:58:50 -08:00
Mark Tiefenbruck
eaabe0321d make bit depth accessible from an FbDrawable 2007-12-24 21:15:17 -08:00
Mark Tiefenbruck
54eda44f85 fix menuitem height on startup 2007-12-20 18:25:50 -08:00
Mark Tiefenbruck
aef3155784 convert macro command parsing to use new StringUtil function 2007-12-20 12:52:20 -08:00
Mark Tiefenbruck
03dce043b7 added ForEach key command 2007-12-20 12:23:56 -08:00
Mark Tiefenbruck
98c5cea5f5 fix torn menus 2007-12-17 22:52:30 -08:00
Mark Tiefenbruck
c01bd6e9fd holding control will now keep the menu open 2007-12-17 21:44:17 -08:00
Mark Tiefenbruck
31df2d8bd6 make MenuItem responsible for decision to close menu when clicked 2007-12-17 21:09:20 -08:00
Mark Tiefenbruck
0ca0aa1ac2 fix initialization of menu fonts 2007-12-16 13:13:22 -08:00