Check-in [690640b8e9]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Minor updates to make doxygen work without warnings.
Timelines: family | ancestors | descendants | both | dev1.x
Files: files | file ages | folders
SHA1:690640b8e94460910254a70687f5d323d4ecee2d
User & Date: manuv 2013-07-31 01:06:13
Context
2013-08-01
19:12
  • Added some basic info about layouts to minx.core.wm doc string.
  • Updated hooks-list.wiki with info about new hooks.
  • Fixed a bug in layman.receptive_layout(): have to add layout returned by receptive_layout_hook to layouts list.
  • In layman.find(), added ability to search for layouts based on their names. (Noticed we needed this ability when writing sample code to illustrate layouts usage.)
  • Removed unnecessary warnings from minxlib::window, which were simply cluttering the log.
  • Other minor edits elsewhere.
check-in: 3740586cc4 user: manuv tags: dev1.x
2013-07-31
01:06
Minor updates to make doxygen work without warnings. check-in: 690640b8e9 user: manuv tags: dev1.x
2013-07-30
01:54
Some minor reorganization of the X event handlers:
  • Moved focus change event handlers from minx.core.xevents to minx.layout.base.
  • Removed reparent notification handler from minx.core.xevents in favour of handling the event entirely from minx.layout.base.

This should pretty much all the code that's needed for the 0.2.0 release. Now to tackle the documentation... check-in: 4dc459e610 user: manuv tags: dev1.x

Changes

Changes to core/focus_list.py.

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
...
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191

class focus_list:
    """A doubly-linked circular list for keeping track of windows that
    can be focused.

    This class implements a doubly-linked circular list that is meant to
    be used by @ref minx.core.wm.wm "the window manager" for keeping
    track of the list of @ref minx.core.window.window "top-level windows"
    that can be focused. The head of this list will always be taken to
    be the currently focused window.

    """

    # Internal class for storing an item and references to its two
    # neighbours.
    class _node:
        def __init__(self, item):
................................................................................
           return None
        return self._head._item

    def forward(self):
        """Move head to next element.

        This method is meant to allow moving the input focus from the
        current @ref minx.core.window.window "top-level window" to the
        next one in the @ref minx.core.wm.wm "window manager's" list of
        windows that can be focused.

        If the focus list is empty, this function does nothing.

        """
        if self._head != None:
           self._head  = self._head._right

    def backward(self):
        """Move head to previous element.

        This method is meant to allow moving the input focus from the
        current @ref minx.core.window.window "top-level window" to the
        previous one in the @ref minx.core.wm.wm "window manager's" list
        of windows that can be focused.

        If the focus list is empty, this function does nothing.

        """
        if self._head != None:
           self._head  = self._head._left








|
|
|







 







|
|
|











|
|
|







40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
...
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191

class focus_list:
    """A doubly-linked circular list for keeping track of windows that
    can be focused.

    This class implements a doubly-linked circular list that is meant to
    be used by @ref minx.core.wm.wm "the window manager" for keeping
    track of the list of @ref minxlib::window "top-level windows" that
    can be focused. The head of this list will always be taken to be the
    currently focused window.

    """

    # Internal class for storing an item and references to its two
    # neighbours.
    class _node:
        def __init__(self, item):
................................................................................
           return None
        return self._head._item

    def forward(self):
        """Move head to next element.

        This method is meant to allow moving the input focus from the
        current @ref minxlib::window "top-level window" to the next one
        in the @ref minx.core.wm.wm "window manager's" list of windows
        that can be focused.

        If the focus list is empty, this function does nothing.

        """
        if self._head != None:
           self._head  = self._head._right

    def backward(self):
        """Move head to previous element.

        This method is meant to allow moving the input focus from the
        current @ref minxlib::window "top-level window" to the previous
        one in the @ref minx.core.wm.wm "window manager's" list of
        windows that can be focused.

        If the focus list is empty, this function does nothing.

        """
        if self._head != None:
           self._head  = self._head._left

Changes to dox/CMakeLists.txt.

27
28
29
30
31
32
33








34
35
36
37
38
39
40
#

# Min cmake version
cmake_minimum_required(VERSION 2.8)

# Project name
project(minxdoc)









# Custom target for API documentation
find_package(Doxygen)
if(DOXYGEN_FOUND)
    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doxyfile.in"
                   "${CMAKE_CURRENT_BINARY_DIR}/doxyfile" @ONLY)
    add_custom_target(doc







>
>
>
>
>
>
>
>







27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#

# Min cmake version
cmake_minimum_required(VERSION 2.8)

# Project name
project(minxdoc)

# Check if we have Xinerama and, if so, set a CMake variable that will
# tell Doxygen so that it generates the documentation for the optional
# Xinerama-dependent parts of Minx.
find_package(X11)
if(X11_Xinerama_FOUND)
    set(minxdoc_PREDEFINED MINXLIB_HAS_XINERAMA)
endif()

# Custom target for API documentation
find_package(Doxygen)
if(DOXYGEN_FOUND)
    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doxyfile.in"
                   "${CMAKE_CURRENT_BINARY_DIR}/doxyfile" @ONLY)
    add_custom_target(doc

Changes to dox/doxyfile.in.

670
671
672
673
674
675
676

677
678
679
680
681
682
683
....
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
# The INPUT tag can be used to specify the files and/or directories that contain 
# documented source files. You may enter file names like "myfile.cpp" or 
# directories like "/usr/src/myproject". Separate the files or directories 
# with spaces.

INPUT = @CMAKE_SOURCE_DIR@/minxlib  \
        @CMAKE_SOURCE_DIR@/core     \

        @CMAKE_SOURCE_DIR@/dox

# This tag can be used to specify the character encoding of the source files 
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
# also the default input encoding. Doxygen uses libiconv (or the iconv built 
# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
# the list of possible encodings.
................................................................................
# are defined before the preprocessor is started (similar to the -D option of 
# gcc). The argument of the tag is a list of macros of the form: name 
# or name=definition (no spaces). If the definition and the = are 
# omitted =1 is assumed. To prevent a macro definition from being 
# undefined via #undef or recursively expanded use the := operator 
# instead of the = operator.

PREDEFINED             = 

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
# this tag can be used to specify a list of macro names that should be expanded. 
# The macro definition that is found in the sources will be used. 
# Use the PREDEFINED tag if you want to use a different macro definition that 
# overrules the definition found in the source code.








>







 







|







670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
....
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
# The INPUT tag can be used to specify the files and/or directories that contain 
# documented source files. You may enter file names like "myfile.cpp" or 
# directories like "/usr/src/myproject". Separate the files or directories 
# with spaces.

INPUT = @CMAKE_SOURCE_DIR@/minxlib  \
        @CMAKE_SOURCE_DIR@/core     \
        @CMAKE_SOURCE_DIR@/layout   \
        @CMAKE_SOURCE_DIR@/dox

# This tag can be used to specify the character encoding of the source files 
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
# also the default input encoding. Doxygen uses libiconv (or the iconv built 
# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
# the list of possible encodings.
................................................................................
# are defined before the preprocessor is started (similar to the -D option of 
# gcc). The argument of the tag is a list of macros of the form: name 
# or name=definition (no spaces). If the definition and the = are 
# omitted =1 is assumed. To prevent a macro definition from being 
# undefined via #undef or recursively expanded use the := operator 
# instead of the = operator.

PREDEFINED             = @minxdoc_PREDEFINED@

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
# this tag can be used to specify a list of macro names that should be expanded. 
# The macro definition that is found in the sources will be used. 
# Use the PREDEFINED tag if you want to use a different macro definition that 
# overrules the definition found in the source code.

Changes to minxlib/CMakeLists.txt.

44
45
46
47
48
49
50

51
52
53
54
55
56
57
                    ${Boost_INCLUDE_DIRS}
                    ${PYTHON_INCLUDE_DIRS})

# Check if we have Xinerama
if(X11_Xinerama_FOUND)
    set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xinerama_LIB})
    add_definitions(-DMINXLIB_HAS_XINERAMA)

endif()

# Libraries we need to link against
set(minxlib_LIBS ${minxlib_LIBS}
    ${X11_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})

# Sources







>







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
                    ${Boost_INCLUDE_DIRS}
                    ${PYTHON_INCLUDE_DIRS})

# Check if we have Xinerama
if(X11_Xinerama_FOUND)
    set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xinerama_LIB})
    add_definitions(-DMINXLIB_HAS_XINERAMA)
    set(minxlib_DOXYGEN_DEFINES MINXLIB_HAS_XINERAMA)
endif()

# Libraries we need to link against
set(minxlib_LIBS ${minxlib_LIBS}
    ${X11_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})

# Sources

Changes to minxlib/root_window.hh.

83
84
85
86
87
88
89

90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110

        This constructor is meant to be used when Xinerama is not active.
        In multi-head setups without Xinerama, the X server will be
        configured with independent displays.
    */
    root_window(Display* d, int s) ;


    /**
        @brief  Create a wrapper object for a root window with Xinerama active.
        @param  d The display object to which the window is "linked."
        @param  s The zero-based screen index whose root window we want.
        @param  i The Xinerama screen info structure for the specified screen.
        @return A valid wrapper object for the specified screen's root window.

        This constructor is meant to be used when Xinerama is active. It
        is the caller's responsibility to obtain the XineramaScreenInfo
        structures by calling XineramaQueryScreens() and then freeing
        them once all the necessary root window objects have been
        created.
    */
#ifdef MINXLIB_HAS_XINERAMA
    root_window(Display* d, int s, const XineramaScreenInfo& i) ;
#endif

    /**
        @brief  Export the window class to minxlib Python module.
        @return Nothing.








>













<







83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

104
105
106
107
108
109
110

        This constructor is meant to be used when Xinerama is not active.
        In multi-head setups without Xinerama, the X server will be
        configured with independent displays.
    */
    root_window(Display* d, int s) ;

#ifdef MINXLIB_HAS_XINERAMA
    /**
        @brief  Create a wrapper object for a root window with Xinerama active.
        @param  d The display object to which the window is "linked."
        @param  s The zero-based screen index whose root window we want.
        @param  i The Xinerama screen info structure for the specified screen.
        @return A valid wrapper object for the specified screen's root window.

        This constructor is meant to be used when Xinerama is active. It
        is the caller's responsibility to obtain the XineramaScreenInfo
        structures by calling XineramaQueryScreens() and then freeing
        them once all the necessary root window objects have been
        created.
    */

    root_window(Display* d, int s, const XineramaScreenInfo& i) ;
#endif

    /**
        @brief  Export the window class to minxlib Python module.
        @return Nothing.