mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-24 07:02:30 +01:00
396 lines
15 KiB
Plaintext
396 lines
15 KiB
Plaintext
changes since wmaker 0.62.1:
|
|
............................
|
|
- added WRuler widget
|
|
- added WText widget (rtf multiline text widget)
|
|
Nwanua Elumeze <nwanua@colorado.edu>
|
|
- added a new AUTO option for the UseMultiByte option
|
|
- added WMRaiseWidget()/WMLowerWidget()
|
|
- added missing EscapeTextMovement to textfield delegate/notification
|
|
- added WMGetLabelText()
|
|
- added WMReparentWidget()
|
|
- added WMCreateTabViewItem()
|
|
- added W_CreateUnmanagedTopView()
|
|
- added wtokenjoin(), wtokensplit(), wtokenfree(), wtrimspace()
|
|
- added WMWidgetIsMapped()
|
|
- added WMSetApplicationIconWindow()
|
|
- restructured the directory tree. Added Documentation, Examples and Tests
|
|
subdirectories
|
|
- removed WMArrayBag and reorganized WMTreeBag to be WMBag.
|
|
- added WMArray class.
|
|
- added WMSetWindowUserPosition().
|
|
- added WMGetListSelectedItems()
|
|
- added WMSetListAllowMultipleSelection(), WMListAllowsMultipleSelection().
|
|
- added WMSetListAllowEmptySelection(), WMListAllowsEmptySelection().
|
|
- WMListSelectionDidChangeNotification passes NULL as the notification
|
|
client data (previously passed the selected item row).
|
|
- WMRemoveListItem() returns an int : 1 success, 0 fail (previously was void).
|
|
|
|
|
|
changes since wmaker 0.62.0:
|
|
............................
|
|
- added WMSetWidgetDefaultFont(), WMSetWidgetDefaultBoldFont()
|
|
|
|
|
|
|
|
changes since wmaker 0.62.0:
|
|
............................
|
|
- added WM{S,G}etDataFormat()
|
|
- added drag and drop
|
|
- changed selection code
|
|
- added clientdata to WMFindInBag
|
|
- removed SetWindowInitialSize()
|
|
- added SetWindowAspectRatio()
|
|
- added initial timeout when establishing a connection.
|
|
- added WMSetConnectionDefaultTimeout() and WMSetConnectionOpenTimeout();
|
|
- added WMGetConnectionTimeoutState()
|
|
|
|
changes since wmaker 0.61.1:
|
|
............................
|
|
|
|
- WARNING: semantic of bags has changed!
|
|
An index assigned to an item will always keep that index unless
|
|
you insert an item before it.
|
|
|
|
For example:
|
|
bag = WMCreateBag();
|
|
WMSetInBag(bag, 10, "bla");
|
|
That code will put "bla" in index 10, instead of 0, as it used to be.
|
|
- fixed WMInsertInBag(). It ignored index, and always put the new item at end.
|
|
- added WMSaveUserDefaults().
|
|
- rewrote WMPopUpButton to use WMMenuItem
|
|
- added WMGetPopUpButtonMenuItem(WMPopUpButton *bPtr, int index)
|
|
- WMSortListItemsWithComparer(WMList *lPtr, (int)(f)(const void*, const void*))
|
|
- WMSortBrowserColumnWithComparer()
|
|
- fixed bug with sorting list items.
|
|
- fixed bug in handling keyboard input associated with selection and
|
|
notification sending.
|
|
- filepanel puts dirs on top of list (Wolff <wolff@cybercable.fr>)
|
|
- added WMReplaceInBag (Wolff <wolff@cybercable.fr>)
|
|
- added vertical views and multiple views in WMSplitView (Wolff <wolff@cybercable.fr>)
|
|
- changed values of parameter values of WMSplitViewConstrainProc()
|
|
- configurable default fontsize patch (Igor P. Roboul <igor@mordor.myip.org>)
|
|
- fixed a bug that crashed the programm when a popup button was scrolled.
|
|
- fixed a bug that caused incorrect drawing position of the popup indicator.
|
|
- fixed a bug that prevented selecting no item (-1) in a popup button.
|
|
- an assertion will be raised if the program tries to select a popup button
|
|
item that is beyond the total number of items present in the popup button.
|
|
- changed names of functions for SplitView to be consistent. Some contained
|
|
SubView while other Subview. Now all have Subview.
|
|
- fixed a bug in how input events were posted. Establishing 2 or more input
|
|
handlers for the same file descriptor, handling different (read/write/except)
|
|
events, caused wrong handlers to be called.
|
|
- Reimplemented the input and idle handlers with WMBag to avoid a functional
|
|
problem with them: inability to remove handlers next to the called one, from
|
|
the called handler itself. Trying to do this with the old version caused the
|
|
program to crash.
|
|
- changed wrealloc behaviour to be like this: new = wrealloc(old, new_size);
|
|
1. if old is NULL, return wmalloc(new_size).
|
|
2. if new_size is 0, call wfree(old), and return NULL.
|
|
3. if both old is a valid pointer and new_size>0, call realloc.
|
|
- added wstrerror(int errnum) to return the string associated with errnum.
|
|
- new wsyserrorwithcode(int error, const char* fmt, ...), similar to
|
|
wsyserror(), but printing the message for the specified error code.
|
|
- added 3 new classes: WMData, WMHost and WMConnection
|
|
- fixed a big memory leak in the color panel code (from Pascal Hofstee).
|
|
- added scrolling to tabview
|
|
|
|
changes since wmaker 0.61.0:
|
|
............................
|
|
|
|
- added WMGetTextFieldFont()
|
|
- escape key in panels (craig nellist <crn@ozemail.com.au>)
|
|
- applied patch with fixes and enhancements to textfield
|
|
(Franck Wolff <wolff@cybercable.fr>)
|
|
- changed WMList to use WMBag internally, instead of a linked list
|
|
- replaced WMAddSortedListItem() with WMSortListItems()
|
|
- replaced WMAddSortedBrowserItem() with WMSortBrowserColumn()
|
|
|
|
changes since wmaker 0.60.0:
|
|
............................
|
|
|
|
- added WMScreenWidth() and WMScreenHeight() functions.
|
|
- fixed some problems when compiling with non gcc compilers.
|
|
- added WMSetTextFieldFont()
|
|
- added WMSetButtonImageDefault() (craig nellist <crn@ozemail.com.au>)
|
|
- added WMBag (array/list)
|
|
- added libWUtil, a library that is a subset of libWINGs. It contains utils
|
|
that can be used in writing non-GUI programs. They include: hashes,
|
|
notifications, input/idle/timer handlers, user defaults database handling,
|
|
memory handling, application resource handling, etc.
|
|
All the non-GUI stuff from libWINGs is present.
|
|
Still linWINGs contain all this stuff so if you use libWINGs, you don't
|
|
need to link against libWUtil too.
|
|
One notable aspect of libWUtil is that it has a modified version of the
|
|
event handling function. It is named WHandleEvents() and will handle all
|
|
input/idle/timer events the app has.
|
|
If your app has a permanent input handler (as for example a socket a server
|
|
is listening on), then the main loop of the app can be:
|
|
while(1) {
|
|
WHandleEvents();
|
|
}
|
|
but if there is no permanent input handler, you need to add some delay to
|
|
avoid a too high cpu load by your program:
|
|
while(1) {
|
|
WHandleEvents();
|
|
wusleep(5000);
|
|
}
|
|
A permanent input handler is one that is established when the program starts
|
|
and is present until the program exits.
|
|
One that is deleted and later reinstalled, is not considered permanent.
|
|
This difference is because if there is some input handler, the function will
|
|
block until some event appears, while if there is no input handler the
|
|
function will return almost immediately (after handling the timer/idle
|
|
stuff).
|
|
|
|
Except the stuff declared in WUtil.h, the following functions declared in
|
|
WINGs.h are also present in libWUtil (you will need to #include <WINGs.h>
|
|
if you use one of these):
|
|
WMInitializeApplication(char *applicationName, int *argc, char **argv);
|
|
WMSetResourcePath(char *path);
|
|
WMGetApplicationName();
|
|
WMPathForResourceOfType(char *resource, char *ext);
|
|
WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata);
|
|
WMDeleteTimerWithClientData(void *cdata);
|
|
WMDeleteTimerHandler(WMHandlerID handlerID);
|
|
WMAddIdleHandler(WMCallback *callback, void *cdata);
|
|
WMDeleteIdleHandler(WMHandlerID handlerID);
|
|
WMAddInputHandler(int fd, int condition, WMInputProc *proc,
|
|
void *clientData);
|
|
WMDeleteInputHandler(WMHandlerID handlerID);
|
|
- added progress indicator widget
|
|
- Changed WMSetWindowUPosition() and WMSetWindowUSize() to
|
|
WMSetWindowInitialPosition() and WMSetWindowInitialSize() respectively,
|
|
for better naming conventions.
|
|
|
|
|
|
changes since wmaker 0.53.0:
|
|
............................
|
|
|
|
- added balloon help
|
|
- fixed a bug with setting initial path in browsers.
|
|
- added WMSetButtonImageDimsWhenDisabled()
|
|
- changed simple callback/notifications to delegate-like stuff. Affected
|
|
widgets are:
|
|
WMBrowser
|
|
- WMSetBrowserFillProc() was replaced with WMSetBrowserDelegate
|
|
- WMBrowserDidScrollNotification was replaced with a delegate callback
|
|
|
|
WMTextField (not completed yet)
|
|
The notifications will still work, but using the delegate is preferable
|
|
|
|
How to convert old code to delegate callbacks:
|
|
1 - create a variable (static or dynamic) of the type of the
|
|
delegate for the widget type.
|
|
2 - Replace the notification observers with the equivalent
|
|
delegate callbacks.
|
|
3 - Put pointers to the callbacks in the delegate variable.
|
|
|
|
Take a look in wfilepanel.c to see how it is used there.
|
|
|
|
- changed W_ViewProcedureTable to delegates
|
|
This will only affect user created widgets. If you have a custom
|
|
widget, you will need to update the callbacks and the declaration
|
|
of the W_ViewProcedureTable variable to be a W_ViewDelegate,
|
|
which is declared in WINGsP.h To setup the delegate, assign
|
|
the delegate variable to view->delegate.
|
|
|
|
- WMTextField
|
|
Removed all the didChange notifications that were sent when the text
|
|
was changed programmatically. Only changes made by user interaction
|
|
will be notified now. If you need the old behaviour, send notifications
|
|
manually when you change the text.
|
|
|
|
- added WMTabView
|
|
- added WMGetColorPanelColor(WMColorPanel *panel)
|
|
- made WMGetUDStringForKey() to only return a reference to the string, not a
|
|
wstrdup()'ed copy. DO NOT FREE IT ANYMORE!
|
|
- added MultiByteText option to userdefaults file to control use of multibyte
|
|
string drawing functions
|
|
- renamed WMCreateFont() to WMCreateFontSet()
|
|
- renamed WMCreateFontInDefaultEncoding() to WMCreateNormalFont()
|
|
- added WMCreateFont() with different semantics
|
|
|
|
|
|
changes since wmaker 0.52.0:
|
|
............................
|
|
|
|
- added int WMGetBrowserMaxVisibleColumns(WMBrowser *bPtr);
|
|
|
|
|
|
changes since wmaker 0.51.2:
|
|
............................
|
|
|
|
- added WMColorWellDidChangeNotification
|
|
- added wfindfileinarray()
|
|
- fixed bug in window title setting
|
|
(MANOME Tomonori <manome@itlb.te.noda.sut.ac.jp>)
|
|
|
|
changes since wmaker 0.51.1:
|
|
............................
|
|
|
|
- wusergnusteppath() will return a statically allocated string now.
|
|
DO NOT FREE IT ANYMORE!!
|
|
|
|
|
|
|
|
changes since wmaker 0.51.0:
|
|
............................
|
|
|
|
- applied c++ compat header patch from Martynas Kunigelis <mkunigelis@alna.lt>
|
|
- added WMSetTextFieldBeveled()
|
|
- removed W_GC() : use WMColorGC() instead
|
|
- added WMCreatePixmap()
|
|
- changed WMSetTextFieldEnabled() to WMSetTextFieldEditable()
|
|
|
|
changes since wmaker 0.50.1:
|
|
............................
|
|
|
|
- fixed various bugs
|
|
- added patch from Franck Wolff <frawolff@club-internet.fr>, with
|
|
many fixes and enhancements
|
|
- added notification queues, asynchronous notifications etc.
|
|
- added WMSetBrowserDoubleAction()
|
|
- fixed list double click action
|
|
|
|
changes since wmaker 0.50.2:
|
|
............................
|
|
|
|
- added wsetabort() - look WUtil.h
|
|
- fixed bug in WMList resize
|
|
- added notification sending when changing textfield programatically
|
|
- removed WMHideWindow()
|
|
- fixed bug in WMCloseWindow()
|
|
- added textfield selection patch
|
|
- added color panel code
|
|
- added auto name completion for the file panel
|
|
- added function to select text range, and to set cursor position in text
|
|
fields programatically
|
|
|
|
changes since wmaker 0.20.3:
|
|
............................
|
|
|
|
- added WMSetSliderImage(), WMSetSliderKnobThickness()
|
|
- added WMGetListItemHeight()
|
|
- added WMListDidScrollNotification
|
|
- added WSetColorWellBordered()
|
|
- added hacky color dragging in colorwell
|
|
- added poll() support in WMNextEvent. WARNING: the stuff needed for
|
|
WMAddInputHandler() is not yet implemented for the poll stuff
|
|
- added WMSetFilePanelAccessoryView(), WMGetFilePanelAccessoryView()
|
|
- added WMSetPopUpButtonEnabled()
|
|
- added WMGetLabelImage()
|
|
- autoscroll for popup button menus
|
|
- added WMDrawPixmap()
|
|
- WARNING: changed parameter list for WMListDrawProc
|
|
|
|
changes since wmaker 0.20.2:
|
|
............................
|
|
|
|
- WMSetBrowserMaxVisibleColumns() - untested
|
|
|
|
|
|
|
|
changes since wmaker 0.20.0:
|
|
............................
|
|
|
|
- added generic object field for WMListItem. This is for hanging generic
|
|
clientdata
|
|
|
|
|
|
changes since wmaker 0.20.0:
|
|
............................
|
|
|
|
- changed WMGetFilePanelFile() with WMGetFilePanelFileName()
|
|
- made SavePanel
|
|
|
|
changes since wmaker 0.19.3:
|
|
............................
|
|
|
|
- added WMCreatePanelForWindow()
|
|
- added extra parent parameter for filepanel, alertpanel and inputpanel
|
|
- WMCloseWindow()
|
|
- WMChangePanelOwner()
|
|
- added WMAddInputHandler()
|
|
- change range related function arguments (WMTextField) to use WMRange
|
|
|
|
changes since wmaker 0.19.1:
|
|
............................
|
|
|
|
- added wstrappend()
|
|
- fixed bug when changing selected radio button by hand
|
|
|
|
changes since wmaker 0.18.1:
|
|
............................
|
|
|
|
- removed textHeight arg from W_PaintImageAndText
|
|
- added WMCreateWindowWithStyle()
|
|
- added WMSetWindowBaseSize() and ResizeIncrements()
|
|
- added WMSetWindowLeve()
|
|
- added WMSetWindowDocumentEdited()
|
|
- added WMSetScrollViewLineScroll(), WMSetScrollViewPageScroll()
|
|
- added WMSetWindowMiniwindowTitle()
|
|
- added WMSetWindowMiniwindowImage()
|
|
|
|
changes since wmaker 0.18.0:
|
|
............................
|
|
|
|
- added functions to get RGB components and "#rrggbb" string from WMColor.
|
|
- added function to create color from a name
|
|
- fixed bug that caused blocking until some new event arrives, even
|
|
when there already were events in the queue
|
|
(like having to move the pointer over window to force the window to be
|
|
painted)
|
|
|
|
changes since wmaker 0.17.5:
|
|
............................
|
|
|
|
I don't remember everything, but here it goes:
|
|
|
|
- fixed some bugs in text field
|
|
- added a incomplete implementation of split view (not yet usable)
|
|
- added a slider
|
|
- changed the filepanel stuff. Each application can have only 1 file panel.
|
|
The same panel will be reused every time you call for it, unless you free it.
|
|
- changed semantics of WMCreateFont() so that it returns NULL if the requested
|
|
font can't be loaded
|
|
- removed WMAddDestroyCallback()
|
|
- fixed bug in WMRemovePopUpButtonItem()
|
|
- added function for user specified item height in WMList
|
|
- added WMSetPopUpButtonText(). It will set the default text in the button
|
|
when no options are selected
|
|
- fixed bug in remove/add item in already mapped popupbuttons. Note: it is
|
|
not good practice to change the contents of a popup button when it's
|
|
already visible and the user has probably interacted with it.
|
|
- fixed behaviour of "radio buttons"
|
|
- WMInitializeApplication() must be the first function to be called in the
|
|
program
|
|
- removed applicationName, argc and argv arguments from the WMCreateScree...
|
|
functions
|
|
- WMReleaseColor(scr,color) changed to WMReleaseColor(color)
|
|
- WMPaintColorRectangle() changed to WMPaintColorSwatch()
|
|
- added various functions in font and color handling
|
|
- added WMSetButtonFont()
|
|
- changed WMCreateCommandButton() so that the buttons it creates will change
|
|
their label when pushed
|
|
- added WMGetSystemPixmap(WMScreen *scr, int image)
|
|
- added partial I18N support
|
|
- added libPropList requirement and some related utility functions
|
|
- added a interface to prooplist, so that it works as a user defaults db
|
|
- added WMWidthOfString() (removed WMFontWidthOfString())
|
|
- added WMDrawString()
|
|
- added WMSetTextFieldSecure(WMTextField *tPtr, Bool flag)
|
|
- WMGetListItem() will dup the returned string
|
|
- removed need for ProgName being defined
|
|
- rewrote hashtable stuff and made it available for outside use
|
|
- added notification functions, with view resize notification
|
|
- added WMSetWindowMinSize() and MaxSize()
|
|
- text editing notification
|
|
- added WMSetListPosition() etc.
|
|
- added WMInsertBrowserItem()
|
|
- the above 2 functions return WMListItem*, instead of Bool
|
|
- rewrote browser
|
|
- WMGetListItem() will return WMListItem*
|
|
- removed WMGetListItems() and WMSetListItems()
|
|
- fixed focus stuff for multi-window apps
|
|
- changed all WMList function names that contained index to row
|