Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
0b62586c
Commit
0b62586c
authored
Dec 03, 2005
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support for passing an argument from subject to observer
parent
4eed3209
Changes
34
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
86 additions
and
78 deletions
+86
-78
modules/gui/skins2/controls/ctrl_button.cpp
modules/gui/skins2/controls/ctrl_button.cpp
+1
-1
modules/gui/skins2/controls/ctrl_button.hpp
modules/gui/skins2/controls/ctrl_button.hpp
+2
-2
modules/gui/skins2/controls/ctrl_generic.cpp
modules/gui/skins2/controls/ctrl_generic.cpp
+1
-1
modules/gui/skins2/controls/ctrl_generic.hpp
modules/gui/skins2/controls/ctrl_generic.hpp
+2
-2
modules/gui/skins2/controls/ctrl_list.cpp
modules/gui/skins2/controls/ctrl_list.cpp
+2
-2
modules/gui/skins2/controls/ctrl_list.hpp
modules/gui/skins2/controls/ctrl_list.hpp
+4
-4
modules/gui/skins2/controls/ctrl_radialslider.cpp
modules/gui/skins2/controls/ctrl_radialslider.cpp
+2
-1
modules/gui/skins2/controls/ctrl_radialslider.hpp
modules/gui/skins2/controls/ctrl_radialslider.hpp
+2
-2
modules/gui/skins2/controls/ctrl_slider.cpp
modules/gui/skins2/controls/ctrl_slider.cpp
+3
-2
modules/gui/skins2/controls/ctrl_slider.hpp
modules/gui/skins2/controls/ctrl_slider.hpp
+4
-4
modules/gui/skins2/controls/ctrl_text.cpp
modules/gui/skins2/controls/ctrl_text.cpp
+1
-1
modules/gui/skins2/controls/ctrl_text.hpp
modules/gui/skins2/controls/ctrl_text.hpp
+2
-2
modules/gui/skins2/controls/ctrl_tree.cpp
modules/gui/skins2/controls/ctrl_tree.cpp
+3
-2
modules/gui/skins2/controls/ctrl_tree.hpp
modules/gui/skins2/controls/ctrl_tree.hpp
+4
-4
modules/gui/skins2/controls/ctrl_video.cpp
modules/gui/skins2/controls/ctrl_video.cpp
+1
-1
modules/gui/skins2/controls/ctrl_video.hpp
modules/gui/skins2/controls/ctrl_video.hpp
+2
-2
modules/gui/skins2/src/anim_bitmap.hpp
modules/gui/skins2/src/anim_bitmap.hpp
+2
-1
modules/gui/skins2/src/generic_window.cpp
modules/gui/skins2/src/generic_window.cpp
+1
-1
modules/gui/skins2/src/generic_window.hpp
modules/gui/skins2/src/generic_window.hpp
+2
-2
modules/gui/skins2/src/tooltip.cpp
modules/gui/skins2/src/tooltip.cpp
+1
-1
modules/gui/skins2/src/tooltip.hpp
modules/gui/skins2/src/tooltip.hpp
+2
-2
modules/gui/skins2/utils/observer.hpp
modules/gui/skins2/utils/observer.hpp
+13
-10
modules/gui/skins2/utils/position.hpp
modules/gui/skins2/utils/position.hpp
+1
-1
modules/gui/skins2/utils/var_bool.cpp
modules/gui/skins2/utils/var_bool.cpp
+3
-3
modules/gui/skins2/utils/var_bool.hpp
modules/gui/skins2/utils/var_bool.hpp
+7
-7
modules/gui/skins2/utils/var_list.hpp
modules/gui/skins2/utils/var_list.hpp
+1
-1
modules/gui/skins2/utils/var_percent.cpp
modules/gui/skins2/utils/var_percent.cpp
+1
-1
modules/gui/skins2/utils/var_percent.hpp
modules/gui/skins2/utils/var_percent.hpp
+1
-1
modules/gui/skins2/utils/var_text.cpp
modules/gui/skins2/utils/var_text.cpp
+2
-2
modules/gui/skins2/utils/var_text.hpp
modules/gui/skins2/utils/var_text.hpp
+5
-4
modules/gui/skins2/utils/var_tree.hpp
modules/gui/skins2/utils/var_tree.hpp
+2
-2
modules/gui/skins2/vars/equalizer.cpp
modules/gui/skins2/vars/equalizer.cpp
+1
-1
modules/gui/skins2/vars/equalizer.hpp
modules/gui/skins2/vars/equalizer.hpp
+2
-2
modules/gui/skins2/vars/playtree.cpp
modules/gui/skins2/vars/playtree.cpp
+3
-3
No files found.
modules/gui/skins2/controls/ctrl_button.cpp
View file @
0b62586c
...
...
@@ -131,7 +131,7 @@ void CtrlButton::setImage( AnimBitmap *pImg )
}
void
CtrlButton
::
onUpdate
(
Subject
<
AnimBitmap
>
&
rBitmap
)
void
CtrlButton
::
onUpdate
(
Subject
<
AnimBitmap
,
void
*>
&
rBitmap
,
void
*
arg
)
{
notifyLayout
();
}
...
...
modules/gui/skins2/controls/ctrl_button.hpp
View file @
0b62586c
...
...
@@ -34,7 +34,7 @@ class CmdGeneric;
/// Base class for button controls
class
CtrlButton
:
public
CtrlGeneric
,
public
Observer
<
AnimBitmap
>
class
CtrlButton
:
public
CtrlGeneric
,
public
Observer
<
AnimBitmap
,
void
*
>
{
public:
/// Create a button with 3 images
...
...
@@ -88,7 +88,7 @@ class CtrlButton: public CtrlGeneric, public Observer<AnimBitmap>
void
setImage
(
AnimBitmap
*
pImg
);
/// Method called when an animated bitmap changes
virtual
void
onUpdate
(
Subject
<
AnimBitmap
>
&
rBitmap
);
virtual
void
onUpdate
(
Subject
<
AnimBitmap
,
void
*>
&
rBitmap
,
void
*
);
};
...
...
modules/gui/skins2/controls/ctrl_generic.cpp
View file @
0b62586c
...
...
@@ -155,7 +155,7 @@ bool CtrlGeneric::isVisible() const
}
void
CtrlGeneric
::
onUpdate
(
Subject
<
VarBool
>
&
rVariable
)
void
CtrlGeneric
::
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
arg
)
{
// Is it the visibility variable ?
if
(
&
rVariable
==
m_pVisible
)
...
...
modules/gui/skins2/controls/ctrl_generic.hpp
View file @
0b62586c
...
...
@@ -41,7 +41,7 @@ class VarBool;
/// Base class for controls
class
CtrlGeneric
:
public
SkinObject
,
public
Observer
<
VarBool
>
class
CtrlGeneric
:
public
SkinObject
,
public
Observer
<
VarBool
,
void
*
>
{
public:
virtual
~
CtrlGeneric
();
...
...
@@ -128,7 +128,7 @@ class CtrlGeneric: public SkinObject, public Observer<VarBool>
VarBool
*
m_pVisible
;
/// Method called when an observed bool variable is changed
virtual
void
onUpdate
(
Subject
<
VarBool
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
);
};
typedef
CountedPtr
<
CtrlGeneric
>
CtrlGenericPtr
;
...
...
modules/gui/skins2/controls/ctrl_list.cpp
View file @
0b62586c
...
...
@@ -72,14 +72,14 @@ CtrlList::~CtrlList()
}
void
CtrlList
::
onUpdate
(
Subject
<
VarList
>
&
rList
)
void
CtrlList
::
onUpdate
(
Subject
<
VarList
,
void
*>
&
rList
,
void
*
arg
)
{
autoScroll
();
m_pLastSelected
=
NULL
;
}
void
CtrlList
::
onUpdate
(
Subject
<
VarPercent
>
&
rPercent
)
void
CtrlList
::
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rPercent
,
void
*
arg
)
{
// Get the size of the control
const
Position
*
pPos
=
getPosition
();
...
...
modules/gui/skins2/controls/ctrl_list.hpp
View file @
0b62586c
...
...
@@ -35,8 +35,8 @@ class GenericBitmap;
/// Class for control list
class
CtrlList
:
public
CtrlGeneric
,
public
Observer
<
VarList
>
,
public
Observer
<
VarPercent
>
class
CtrlList
:
public
CtrlGeneric
,
public
Observer
<
VarList
,
void
*
>
,
public
Observer
<
VarPercent
,
void
*
>
{
public:
CtrlList
(
intf_thread_t
*
pIntf
,
VarList
&
rList
,
...
...
@@ -88,10 +88,10 @@ class CtrlList: public CtrlGeneric, public Observer<VarList>,
int
m_lastPos
;
/// Method called when the list variable is modified
virtual
void
onUpdate
(
Subject
<
VarList
>
&
rList
);
virtual
void
onUpdate
(
Subject
<
VarList
,
void
*>
&
rList
,
void
*
);
/// Method called when the position variable of the list is modified
virtual
void
onUpdate
(
Subject
<
VarPercent
>
&
rPercent
);
virtual
void
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rPercent
,
void
*
);
/// Called when the position is set
virtual
void
onPositionChange
();
...
...
modules/gui/skins2/controls/ctrl_radialslider.cpp
View file @
0b62586c
...
...
@@ -98,7 +98,8 @@ void CtrlRadialSlider::draw( OSGraphics &rImage, int xDest, int yDest )
}
void
CtrlRadialSlider
::
onUpdate
(
Subject
<
VarPercent
>
&
rVariable
)
void
CtrlRadialSlider
::
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rVariable
,
void
*
arg
)
{
m_position
=
(
int
)(
m_rVariable
.
get
()
*
m_numImg
);
notifyLayout
(
m_width
,
m_height
);
...
...
modules/gui/skins2/controls/ctrl_radialslider.hpp
View file @
0b62586c
...
...
@@ -36,7 +36,7 @@ class VarPercent;
/// Radial slider
class
CtrlRadialSlider
:
public
CtrlGeneric
,
public
Observer
<
VarPercent
>
class
CtrlRadialSlider
:
public
CtrlGeneric
,
public
Observer
<
VarPercent
,
void
*
>
{
public:
/// Create a radial slider with the given image, which must be
...
...
@@ -86,7 +86,7 @@ class CtrlRadialSlider: public CtrlGeneric, public Observer<VarPercent>
DEFINE_CALLBACK
(
CtrlRadialSlider
,
Move
)
/// Method called when the observed variable is modified
virtual
void
onUpdate
(
Subject
<
VarPercent
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rVariable
,
void
*
);
/// Change the position of the cursor, with the given position of
/// the mouse (relative to the layout). Is blocking is true, the
...
...
modules/gui/skins2/controls/ctrl_slider.cpp
View file @
0b62586c
...
...
@@ -159,7 +159,8 @@ void CtrlSliderCursor::draw( OSGraphics &rImage, int xDest, int yDest )
}
void
CtrlSliderCursor
::
onUpdate
(
Subject
<
VarPercent
>
&
rVariable
)
void
CtrlSliderCursor
::
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rVariable
,
void
*
arg
)
{
// The position has changed
refreshLayout
();
...
...
@@ -425,7 +426,7 @@ void CtrlSliderBg::associateCursor( CtrlSliderCursor &rCursor )
}
void
CtrlSliderBg
::
onUpdate
(
Subject
<
VarPercent
>
&
rVariable
)
void
CtrlSliderBg
::
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rVariable
,
void
*
arg
)
{
m_position
=
(
int
)(
m_rVariable
.
get
()
*
(
m_nbHoriz
*
m_nbVert
-
1
)
);
notifyLayout
(
m_bgWidth
,
m_bgHeight
);
...
...
modules/gui/skins2/controls/ctrl_slider.hpp
View file @
0b62586c
...
...
@@ -37,7 +37,7 @@ class VarPercent;
/// Cursor of a slider
class
CtrlSliderCursor
:
public
CtrlGeneric
,
public
Observer
<
VarPercent
>
class
CtrlSliderCursor
:
public
CtrlGeneric
,
public
Observer
<
VarPercent
,
void
*
>
{
public:
/// Create a cursor with 3 images (which are NOT copied, be careful)
...
...
@@ -98,7 +98,7 @@ class CtrlSliderCursor: public CtrlGeneric, public Observer<VarPercent>
const
Bezier
&
m_rCurve
;
/// Method called when the position variable is modified
virtual
void
onUpdate
(
Subject
<
VarPercent
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rVariable
,
void
*
);
/// Method to compute the resize factors
void
getResizeFactors
(
float
&
rFactorX
,
float
&
rFactorY
)
const
;
...
...
@@ -109,7 +109,7 @@ class CtrlSliderCursor: public CtrlGeneric, public Observer<VarPercent>
/// Slider background
class
CtrlSliderBg
:
public
CtrlGeneric
,
public
Observer
<
VarPercent
>
class
CtrlSliderBg
:
public
CtrlGeneric
,
public
Observer
<
VarPercent
,
void
*
>
{
public:
CtrlSliderBg
(
intf_thread_t
*
pIntf
,
...
...
@@ -157,7 +157,7 @@ class CtrlSliderBg: public CtrlGeneric, public Observer<VarPercent>
int
m_position
;
/// Method called when the observed variable is modified
virtual
void
onUpdate
(
Subject
<
VarPercent
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rVariable
,
void
*
);
/// Method to compute the resize factors
void
getResizeFactors
(
float
&
rFactorX
,
float
&
rFactorY
)
const
;
...
...
modules/gui/skins2/controls/ctrl_text.cpp
View file @
0b62586c
...
...
@@ -214,7 +214,7 @@ void CtrlText::setText( const UString &rText, uint32_t color )
}
void
CtrlText
::
onUpdate
(
Subject
<
VarText
>
&
rVariable
)
void
CtrlText
::
onUpdate
(
Subject
<
VarText
,
void
*>
&
rVariable
,
void
*
arg
)
{
displayText
(
m_rVariable
.
get
()
);
}
...
...
modules/gui/skins2/controls/ctrl_text.hpp
View file @
0b62586c
...
...
@@ -38,7 +38,7 @@ class VarText;
/// Class for control text
class
CtrlText
:
public
CtrlGeneric
,
public
Observer
<
VarText
>
class
CtrlText
:
public
CtrlGeneric
,
public
Observer
<
VarText
,
void
*
>
{
public:
enum
Align_t
...
...
@@ -122,7 +122,7 @@ class CtrlText: public CtrlGeneric, public Observer<VarText>
DEFINE_CALLBACK
(
CtrlText
,
UpdateText
);
/// Method called when the observed variable is modified
virtual
void
onUpdate
(
Subject
<
VarText
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarText
,
void
*>
&
rVariable
,
void
*
);
/// Display the text on the control
void
displayText
(
const
UString
&
rText
);
...
...
modules/gui/skins2/controls/ctrl_tree.cpp
View file @
0b62586c
...
...
@@ -130,13 +130,14 @@ int CtrlTree::maxItems()
}
void
CtrlTree
::
onUpdate
(
Subject
<
VarTree
>
&
rTree
)
void
CtrlTree
::
onUpdate
(
Subject
<
VarTree
,
int
>
&
rTree
,
int
arg
)
{
fprintf
(
stderr
,
"Doing update type %i
\n
"
,
arg
);
autoScroll
();
m_pLastSelected
=
NULL
;
}
void
CtrlTree
::
onUpdate
(
Subject
<
VarPercent
>
&
rPercent
)
void
CtrlTree
::
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rPercent
,
void
*
arg
)
{
// Determine what is the first item to display
VarTree
::
Iterator
it
=
m_rTree
.
begin
();
...
...
modules/gui/skins2/controls/ctrl_tree.hpp
View file @
0b62586c
...
...
@@ -33,8 +33,8 @@ class GenericFont;
class
GenericBitmap
;
/// Class for control tree
class
CtrlTree
:
public
CtrlGeneric
,
public
Observer
<
VarTree
>
,
public
Observer
<
VarPercent
>
class
CtrlTree
:
public
CtrlGeneric
,
public
Observer
<
VarTree
,
int
>
,
public
Observer
<
VarPercent
,
void
*
>
{
public:
CtrlTree
(
intf_thread_t
*
pIntf
,
...
...
@@ -102,10 +102,10 @@ class CtrlTree: public CtrlGeneric, public Observer<VarTree>,
VarTree
::
Iterator
m_lastPos
;
/// Method called when the tree variable is modified
virtual
void
onUpdate
(
Subject
<
VarTree
>
&
rTree
);
virtual
void
onUpdate
(
Subject
<
VarTree
,
int
>
&
rTree
,
int
);
// Method called when the position variable of the tree is modified
virtual
void
onUpdate
(
Subject
<
VarPercent
>
&
rPercent
);
virtual
void
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rPercent
,
void
*
);
/// Called when the position is set
virtual
void
onPositionChange
();
...
...
modules/gui/skins2/controls/ctrl_video.cpp
View file @
0b62586c
...
...
@@ -109,7 +109,7 @@ void CtrlVideo::draw( OSGraphics &rImage, int xDest, int yDest )
}
void
CtrlVideo
::
onUpdate
(
Subject
<
VarBox
>
&
rVoutSize
)
void
CtrlVideo
::
onUpdate
(
Subject
<
VarBox
,
void
*>
&
rVoutSize
,
void
*
arg
)
{
int
newWidth
=
((
VarBox
&
)
rVoutSize
).
getWidth
()
+
m_xShift
;
int
newHeight
=
((
VarBox
&
)
rVoutSize
).
getHeight
()
+
m_yShift
;
...
...
modules/gui/skins2/controls/ctrl_video.hpp
View file @
0b62586c
...
...
@@ -30,7 +30,7 @@
class
VoutWindow
;
/// Control video
class
CtrlVideo
:
public
CtrlGeneric
,
public
Observer
<
VarBox
>
class
CtrlVideo
:
public
CtrlGeneric
,
public
Observer
<
VarBox
,
void
*
>
{
public:
CtrlVideo
(
intf_thread_t
*
pIntf
,
GenericLayout
&
rLayout
,
...
...
@@ -56,7 +56,7 @@ class CtrlVideo: public CtrlGeneric, public Observer<VarBox>
virtual
string
getType
()
const
{
return
"video"
;
}
/// Method called when the vout size is updated
virtual
void
onUpdate
(
Subject
<
VarBox
>
&
rVoutSize
);
virtual
void
onUpdate
(
Subject
<
VarBox
,
void
*>
&
rVoutSize
,
void
*
);
private:
/// Vout window
...
...
modules/gui/skins2/src/anim_bitmap.hpp
View file @
0b62586c
...
...
@@ -34,7 +34,8 @@ class OSTimer;
/// Animated bitmap
class
AnimBitmap
:
public
SkinObject
,
public
Box
,
public
Subject
<
AnimBitmap
>
class
AnimBitmap
:
public
SkinObject
,
public
Box
,
public
Subject
<
AnimBitmap
,
void
*>
{
public:
AnimBitmap
(
intf_thread_t
*
pIntf
,
const
GenericBitmap
&
rBitmap
);
...
...
modules/gui/skins2/src/generic_window.cpp
View file @
0b62586c
...
...
@@ -122,7 +122,7 @@ void GenericWindow::toggleOnTop( bool onTop ) const
}
void
GenericWindow
::
onUpdate
(
Subject
<
VarBool
>
&
rVariable
)
void
GenericWindow
::
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
arg
)
{
if
(
m_varVisible
.
get
()
)
{
...
...
modules/gui/skins2/src/generic_window.hpp
View file @
0b62586c
...
...
@@ -41,7 +41,7 @@ class WindowManager;
/// Generic window class
class
GenericWindow
:
public
SkinObject
,
public
Observer
<
VarBool
>
class
GenericWindow
:
public
SkinObject
,
public
Observer
<
VarBool
,
void
*
>
{
private:
friend
class
WindowManager
;
...
...
@@ -120,7 +120,7 @@ class GenericWindow: public SkinObject, public Observer<VarBool>
mutable
VarBoolImpl
m_varVisible
;
/// Method called when the observed variable is modified
virtual
void
onUpdate
(
Subject
<
VarBool
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
);
};
...
...
modules/gui/skins2/src/tooltip.cpp
View file @
0b62586c
...
...
@@ -74,7 +74,7 @@ void Tooltip::hide()
}
void
Tooltip
::
onUpdate
(
Subject
<
VarText
>
&
rVariable
)
void
Tooltip
::
onUpdate
(
Subject
<
VarText
,
void
*>
&
rVariable
,
void
*
arg
)
{
// Redisplay the tooltip
displayText
(
((
VarText
&
)
rVariable
).
get
()
);
...
...
modules/gui/skins2/src/tooltip.hpp
View file @
0b62586c
...
...
@@ -35,7 +35,7 @@ class OSGraphics;
class
UString
;
class
Tooltip
:
public
SkinObject
,
public
Observer
<
VarText
>
class
Tooltip
:
public
SkinObject
,
public
Observer
<
VarText
,
void
*
>
{
public:
/// Create a tooltip with the given font and delay (in milliseconds)
...
...
@@ -65,7 +65,7 @@ class Tooltip: public SkinObject, public Observer<VarText>
int
m_xPos
,
m_yPos
;
/// Method called when the observed variable is modified
virtual
void
onUpdate
(
Subject
<
VarText
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarText
,
void
*>
&
rVariable
,
void
*
);
/// Display text of the tooltip
void
displayText
(
const
UString
&
rText
);
...
...
modules/gui/skins2/utils/observer.hpp
View file @
0b62586c
...
...
@@ -28,11 +28,11 @@
#include <set>
// Forward declaration
template
<
class
S
>
class
Observer
;
template
<
class
S
,
class
ARG
>
class
Observer
;
/// Template for subjects in the Observer design pattern
template
<
class
S
>
class
Subject
template
<
class
S
,
class
ARG
>
class
Subject
{
public:
virtual
~
Subject
()
{}
...
...
@@ -45,23 +45,23 @@ template <class S> class Subject
/// Add an observer to this subject
/// Note: adding twice the same observer is not harmful
virtual
void
addObserver
(
Observer
<
S
>*
pObserver
)
virtual
void
addObserver
(
Observer
<
S
,
ARG
>*
pObserver
)
{
m_observers
.
insert
(
pObserver
);
}
/// Remove an observer from this subject
/// Note: removing twice the same observer is not harmful
virtual
void
delObserver
(
Observer
<
S
>*
pObserver
)
virtual
void
delObserver
(
Observer
<
S
,
ARG
>*
pObserver
)
{
m_observers
.
erase
(
pObserver
);
}
/// Notify the observers when the status has changed
virtual
void
notify
()
virtual
void
notify
(
ARG
arg
)
{
// This stupid gcc 3.2 needs "typename"
typename
set
<
Observer
<
S
>*>::
const_iterator
iter
;
typename
set
<
Observer
<
S
,
ARG
>*>::
const_iterator
iter
;
for
(
iter
=
m_observers
.
begin
();
iter
!=
m_observers
.
end
();
iter
++
)
{
...
...
@@ -70,27 +70,30 @@ template <class S> class Subject
fprintf
(
stderr
,
"iter NULL !
\n
"
);
return
;
}
(
*
iter
)
->
onUpdate
(
*
this
);
(
*
iter
)
->
onUpdate
(
*
this
,
arg
);
}
}
/// Notify without any argument
virtual
void
notify
()
{
notify
(
NULL
);
}
protected:
Subject
()
{}
private:
/// Set of observers for this subject
set
<
Observer
<
S
>*>
m_observers
;
set
<
Observer
<
S
,
ARG
>*>
m_observers
;
};
/// Template for observers in the Observer design pattern
template
<
class
S
>
class
Observer
template
<
class
S
,
class
ARG
>
class
Observer
{
public:
virtual
~
Observer
()
{}
/// Method called when the subject is modified
virtual
void
onUpdate
(
Subject
<
S
>
&
rSubject
)
=
0
;
virtual
void
onUpdate
(
Subject
<
S
,
ARG
>
&
rSubject
,
ARG
arg
)
=
0
;
protected:
Observer
()
{}
...
...
modules/gui/skins2/utils/position.hpp
View file @
0b62586c
...
...
@@ -109,7 +109,7 @@ class Position
/// Variable implementing the Box interface
class
VarBox
:
public
Variable
,
public
Box
,
public
Subject
<
VarBox
>
class
VarBox
:
public
Variable
,
public
Box
,
public
Subject
<
VarBox
,
void
*
>
{
public:
VarBox
(
intf_thread_t
*
pIntf
,
int
width
=
0
,
int
height
=
0
);
...
...
modules/gui/skins2/utils/var_bool.cpp
View file @
0b62586c
...
...
@@ -60,7 +60,7 @@ VarBoolAndBool::~VarBoolAndBool()
}
void
VarBoolAndBool
::
onUpdate
(
Subject
<
VarBool
>
&
rVariable
)
void
VarBoolAndBool
::
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
arg
)
{
notify
();
}
...
...
@@ -82,7 +82,7 @@ VarBoolOrBool::~VarBoolOrBool()
}
void
VarBoolOrBool
::
onUpdate
(
Subject
<
VarBool
>
&
rVariable
)
void
VarBoolOrBool
::
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
arg
)
{
notify
();
}
...
...
@@ -101,7 +101,7 @@ VarNotBool::~VarNotBool()
}
void
VarNotBool
::
onUpdate
(
Subject
<
VarBool
>
&
rVariable
)
void
VarNotBool
::
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
arg
)
{
notify
();
}
...
...
modules/gui/skins2/utils/var_bool.hpp
View file @
0b62586c
...
...
@@ -30,7 +30,7 @@
/// Interface for read-only boolean variable
class
VarBool
:
public
Variable
,
public
Subject
<
VarBool
>
class
VarBool
:
public
Variable
,
public
Subject
<
VarBool
,
void
*
>
{
public:
/// Get the variable type
...
...
@@ -89,7 +89,7 @@ class VarBoolImpl: public VarBool
/// Conjunction of two boolean variables (AND)
class
VarBoolAndBool
:
public
VarBool
,
public
Observer
<
VarBool
>
class
VarBoolAndBool
:
public
VarBool
,
public
Observer
<
VarBool
,
void
*
>
{
public:
VarBoolAndBool
(
intf_thread_t
*
pIntf
,
VarBool
&
rVar1
,
VarBool
&
rVar2
);
...
...
@@ -99,7 +99,7 @@ class VarBoolAndBool: public VarBool, public Observer<VarBool>
virtual
bool
get
()
const
{
return
m_rVar1
.
get
()
&&
m_rVar2
.
get
();
}
// Called when one of the observed variables is changed
void
onUpdate
(
Subject
<
VarBool
>
&
rVariable
);
void
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
);
private:
/// Boolean variables
...
...
@@ -108,7 +108,7 @@ class VarBoolAndBool: public VarBool, public Observer<VarBool>
/// Disjunction of two boolean variables (OR)
class
VarBoolOrBool
:
public
VarBool
,
public
Observer
<
VarBool
>
class
VarBoolOrBool
:
public
VarBool
,
public
Observer
<
VarBool
,
void
*
>
{
public:
VarBoolOrBool
(
intf_thread_t
*
pIntf
,
VarBool
&
rVar1
,
VarBool
&
rVar2
);
...
...
@@ -118,7 +118,7 @@ class VarBoolOrBool: public VarBool, public Observer<VarBool>
virtual
bool
get
()
const
{
return
m_rVar1
.
get
()
||
m_rVar2
.
get
();
}
// Called when one of the observed variables is changed
void
onUpdate
(
Subject
<
VarBool
>
&
rVariable
);
void
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
);
private:
/// Boolean variables
...
...
@@ -127,7 +127,7 @@ class VarBoolOrBool: public VarBool, public Observer<VarBool>
/// Negation of a boolean variable (NOT)
class
VarNotBool
:
public
VarBool
,
public
Observer
<
VarBool
>
class
VarNotBool
:
public
VarBool
,
public
Observer
<
VarBool
,
void
*
>
{
public:
VarNotBool
(
intf_thread_t
*
pIntf
,
VarBool
&
rVar
);
...
...
@@ -137,7 +137,7 @@ class VarNotBool: public VarBool, public Observer<VarBool>
virtual
bool
get
()
const
{
return
!
m_rVar
.
get
();
}
// Called when the observed variable is changed
void
onUpdate
(
Subject
<
VarBool
>
&
rVariable
);
void
onUpdate
(
Subject
<
VarBool
,
void
*>
&
rVariable
,
void
*
);
private:
/// Boolean variable
...
...
modules/gui/skins2/utils/var_list.hpp
View file @
0b62586c
...
...
@@ -34,7 +34,7 @@
/// List variable
class
VarList
:
public
Variable
,
public
Subject
<
VarList
>
class
VarList
:
public
Variable
,
public
Subject
<
VarList
,
void
*
>
{
public:
VarList
(
intf_thread_t
*
pIntf
);
...
...
modules/gui/skins2/utils/var_percent.cpp
View file @
0b62586c
...
...
@@ -43,7 +43,7 @@ void VarPercent::set( float percentage )
if
(
m_value
!=
percentage
)
{
m_value
=
percentage
;
notify
();
notify
(
NULL
);
}
}
modules/gui/skins2/utils/var_percent.hpp
View file @
0b62586c
...
...
@@ -32,7 +32,7 @@ class VarPercent;
/// Percentage variable
class
VarPercent
:
public
Variable
,
public
Subject
<
VarPercent
>
class
VarPercent
:
public
Variable
,
public
Subject
<
VarPercent
,
void
*
>
{
public:
VarPercent
(
intf_thread_t
*
pIntf
)
:
Variable
(
pIntf
),
m_value
(
0
)
{}
...
...
modules/gui/skins2/utils/var_text.cpp
View file @
0b62586c
...
...
@@ -185,7 +185,7 @@ void VarText::set( const UString &rText )
}
void
VarText
::
onUpdate
(
Subject
<
VarPercent
>
&
rVariable
)
void
VarText
::
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rVariable
,
void
*
arg
)
{
UString
newText
=
get
();
// If the text has changed, notify the observers
...
...
@@ -197,7 +197,7 @@ void VarText::onUpdate( Subject<VarPercent> &rVariable )
}
void
VarText
::
onUpdate
(
Subject
<
VarText
>
&
rVariable
)
void
VarText
::
onUpdate
(
Subject
<
VarText
,
void
*>
&
rVariable
,
void
*
arg
)
{
UString
newText
=
get
();
// If the text has changed, notify the observers
...
...
modules/gui/skins2/utils/var_text.hpp
View file @
0b62586c
...
...
@@ -32,8 +32,9 @@
/// String variable
class
VarText
:
public
Variable
,
public
Subject
<
VarText
>
,
public
Observer
<
VarPercent
>
,
public
Observer
<
VarText
>
class
VarText
:
public
Variable
,
public
Subject
<
VarText
,
void
*>
,
public
Observer
<
VarPercent
,
void
*>
,
public
Observer
<
VarText
,
void
*>
{
public:
// Set substVars to true to replace "$X" variables in the text
...
...
@@ -48,8 +49,8 @@ class VarText: public Variable, public Subject<VarText>,
virtual
const
UString
get
()
const
;
/// Methods called when an observed variable is modified
virtual
void
onUpdate
(
Subject
<
VarPercent
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarText
>
&
rVariable
);
virtual
void
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rVariable
,
void
*
);
virtual
void
onUpdate
(
Subject
<
VarText
,
void
*>
&
rVariable
,
void
*
);
private:
/// Variable type
...
...
modules/gui/skins2/utils/var_tree.hpp
View file @
0b62586c
...
...
@@ -2,7 +2,7 @@
* var_tree.hpp
*****************************************************************************
* Copyright (C) 2005 VideoLAN
* $Id
: var_bool.hpp 9934 2005-02-15 13:55:08Z courmisch
$
* $Id$
*
* Authors: Antoine Cellerier <dionoea@videolan.org>
*
...
...
@@ -32,7 +32,7 @@
#include "var_percent.hpp"
/// Tree variable
class
VarTree
:
public
Variable
,
public
Subject
<
VarTree
>
class
VarTree
:
public
Variable
,
public
Subject
<
VarTree
,
int
>
{
public:
VarTree
(
intf_thread_t
*
pIntf
);
...
...
modules/gui/skins2/vars/equalizer.cpp
View file @
0b62586c
...
...
@@ -77,7 +77,7 @@ VariablePtr EqualizerBands::getBand( int band )
}
void
EqualizerBands
::
onUpdate
(
Subject
<
VarPercent
>
&
rBand
)
void
EqualizerBands
::
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rBand
,
void
*
arg
)
{
// Make sure we are not called from set()
if
(
!
m_isUpdating
)
...
...
modules/gui/skins2/vars/equalizer.hpp
View file @
0b62586c
...
...
@@ -29,7 +29,7 @@
/// Variable for graphical equalizer
class
EqualizerBands
:
public
SkinObject
,
public
Observer
<
VarPercent
>
class
EqualizerBands
:
public
SkinObject
,
public
Observer
<
VarPercent
,
void
*
>
{
public:
/// Number of bands
...
...
@@ -52,7 +52,7 @@ class EqualizerBands: public SkinObject, public Observer<VarPercent>
bool
m_isUpdating
;
/// Callback for band updates
virtual
void
onUpdate
(
Subject
<
VarPercent
>
&
rBand
);
virtual
void
onUpdate
(
Subject
<
VarPercent
,
void
*>
&
rBand
,
void
*
);
};
...
...
modules/gui/skins2/vars/playtree.cpp
View file @
0b62586c
...
...
@@ -78,7 +78,7 @@ void Playtree::delSelected()
}
}
buildTree
();
notify
();
notify
(
1
);
}
void
Playtree
::
action
(
VarTree
*
pItem
)
...
...
@@ -106,7 +106,7 @@ void Playtree::action( VarTree *pItem )
void
Playtree
::
onChange
()
{
buildTree
();
notify
();
notify
(
1
);
}
void
Playtree
::
onUpdate
(
int
id
)
...
...
@@ -125,7 +125,7 @@ void Playtree::onUpdate( int id )
msg_Warn
(
getIntf
(),
"Cannot find node with id %d"
,
id
);
}
// TODO update only the right node
notify
();
notify
(
0
);
}
void
Playtree
::
buildNode
(
playlist_item_t
*
pNode
,
VarTree
&
rTree
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment