I sent only 38 patches. The two last patches were .gitignore and other patch 
that I sent previosly. Ignore them.

kix

On Sat, 19 Oct 2013, Rodolfo kix Garcia escribió:

> Hi,
> 
> I was working on these patches, but I think is too much work for only one 
> person. I need your help.
> 
> What I am doing? I am working on abstraction. My aim is that the wmaker 
> elements doesn't use the screen or other physical devices. The aim is create 
> the object in memomy and map it on the screen only when is needed. Therefore, 
> if we change the screen, we can "re-map" the object, but we don't need 
> re-create the object (and then, restart windowmaker). This idea is needed for 
> XRandR.
> 
> Here are my patches. Some things:
> 
> First, I split the object creation in two steps, wcore_create and wcore_map. 
> Yes, the first function creates the object, the second function, map it on 
> the screen. For example, to create a icon, we need only the icon size (64x64) 
> and the image (icon image). When we need paint (map) the image, then, we need 
> the screen and the x and y coords.
> 
> These patches do this work:
> 
>   New function wcore_create
>   New core map functions
> 
> I use this code in these patches:
> 
>   New framewin abstraction functions
>   icon_create_core uses wcore abstract functions
>   Removed unused function wCoreCreateTopLevel
>   icon_create_core function does not need WScreen
>   wMenuCreate uses wcore abstract functions
>   wMenuCreate uses framewin abstract functions
>   wManageWindow uses framewin abstract functions
>   menu elements created together
>   Removed unused function wFrameWindowCreate
>   wFrameWindowUpdateBorders uses wcore abstract funcs
>   Removed unused function wCoreCreate
>   Framewin, create framewin joined
>   wMenuCreate splitted
>   createApplicationMenu without screen
>   wMenuCreateForApp without screen
>   wMenuCreate replaced in dock.c
>   Simple dock menu udpates
> 
> The second problem is the icon images. The icon should be screen independent, 
> but sometimes is not possible. For example, xpm images needs the screen to 
> create the right image. In that case, we need read the image file, store it 
> in a tmp variable, and when we have the screen, render the image. These 
> patches do that work. The new function RLoadImage_nodraw() loads the image 
> (xpm, tiff,...) but doesn't render it. We use a new function to draw it. We 
> need these patches when we create the Dock, Clip, ... 
> 
>   Join the XPM draw code
>   wraster: WRImgFormat enum moved between header files
>   Added Source image info to RImage
>   Identify the source file type
>   XPM functions uses new vars in the RImage struct
>   PNG creation splitted
>   New function RDrawImage
>   RLoadImage calls RDraw functions
>   New helper function for load cache images
>   New function RLoadImage_nodraw
> 
> With these changes, I start to split the icon creation, and the icon map. 
> These are some examples. Functions like wMenuCreate should be removed.
> 
>   Removed function get_rimage_from_file
>   removeAppIconFor helper WAppIcon variable
>   set_icon_image_from_database, removed call to wIconValidateIconSize
>   Abstract function set_icon_image_from_database
>   icon create functions code short
>   Icon abstract functions
>   Remove function icon_create_for_dock
>   Remove function icon_create_for_wwindow
>   Remove function  wAppIconCreate
>   Included compile file in gitignore
>   Removed wMenuCreate in window workspace menu
> 
> Please, check my patches, and... help me in this work. Some of these patches 
> were tested a lot (months ago), other patches, are new, but IMO are ok.
> 
> Without these ideas, is very difficult (IMO impossible) implement XRandR, 
> Multiheader, ... configurations.
> 
> Anyway, enjoy the code :-)
> 
> kix
> 
>  .gitignore           |   1 +
>  src/actions.c        |   4 +-
>  src/appicon.c        | 129 ++++++++++++++++---------------
>  src/appmenu.c        |   9 ++-
>  src/defaults.h       |   1 -
>  src/dock.c           |  49 +++++++-----
>  src/framewin.c       | 118 +++++++++++++++++++++--------
>  src/framewin.h       |  18 ++---
>  src/icon.c           |  91 +++++++++++-----------
>  src/icon.h           |   4 +-
>  src/menu.c           | 140 +++++++++++++++++++---------------
>  src/menu.h           |   4 +-
>  src/usermenu.c       |   6 +-
>  src/wcore.c          |  59 +++++----------
>  src/wcore.h          |  17 +++--
>  src/wdefaults.c      |  40 ++++------
>  src/window.c         |  39 +++++-----
>  src/winmenu.c        |  24 ++++--
>  wrlib/gif.c          |   1 +
>  wrlib/imgformat.h    |  23 +-----
>  wrlib/jpeg.c         |   1 +
>  wrlib/libwraster.map |   2 +
>  wrlib/load.c         | 163 +++++++++++++++++++++++++++------------
>  wrlib/nxpm.c         |   6 ++
>  wrlib/png.c          | 190 +++++++++++++++++++++++++++++++++++-----------
>  wrlib/ppm.c          |   1 +
>  wrlib/raster.c       |  21 +++++-
>  wrlib/tiff.c         |   1 +
>  wrlib/wraster.h      |  39 ++++++----
>  wrlib/xpm.c          | 209 
> ++++++++++++++++++++-------------------------------
>  30 files changed, 824 insertions(+), 586 deletions(-)
> 
> -- 
> 1.8.4.rc3
> 

-- 
||// //\\// Rodolfo "kix" Garcia
||\\// //\\ http://www.kix.es/


-- 
To unsubscribe, send mail to [email protected].

Reply via email to