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].
