mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +01:00
multiview and vertical splitview
some bug fixes configurable default font size etc
This commit is contained in:
@@ -6,10 +6,15 @@ changes since wmaker 0.61.1:
|
|||||||
- rewrote WMPopUpButton to use WMMenuItem
|
- rewrote WMPopUpButton to use WMMenuItem
|
||||||
- added WMGetPopUpButtonMenuItem(WMPopUpButton *bPtr, int index)
|
- added WMGetPopUpButtonMenuItem(WMPopUpButton *bPtr, int index)
|
||||||
- WMSortListItemsWithComparer(WMList *lPtr, (int)(f)(const void*, const void*))
|
- WMSortListItemsWithComparer(WMList *lPtr, (int)(f)(const void*, const void*))
|
||||||
|
- WMSortBrowserColumnWithComparer()
|
||||||
- fixed bug with sorting list items.
|
- fixed bug with sorting list items.
|
||||||
- fixed bug in handling keyboard input associated with selection and
|
- fixed bug in handling keyboard input associated with selection and
|
||||||
notification sending.
|
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>)
|
||||||
|
|
||||||
changes since wmaker 0.61.0:
|
changes since wmaker 0.61.0:
|
||||||
............................
|
............................
|
||||||
|
|||||||
@@ -107,14 +107,14 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WINGs/Resources/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Resources/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -146,6 +146,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WINGs/Resources
|
subdir = WINGs/Resources
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WINGs/Resources/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -407,7 +407,7 @@ typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
typedef void WMSplitViewConstrainProc(WMSplitView *sPtr, int dividerIndex,
|
typedef void WMSplitViewConstrainProc(WMSplitView *sPtr, int dividerIndex,
|
||||||
int *minCoordinate, int *maxCoordinate);
|
int *minSize, int *maxSize);
|
||||||
|
|
||||||
typedef WMWidget *WMMatrixCreateCellProc(WMMatrix *mPtr);
|
typedef WMWidget *WMMatrixCreateCellProc(WMMatrix *mPtr);
|
||||||
|
|
||||||
@@ -1016,6 +1016,9 @@ WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text
|
|||||||
|
|
||||||
void WMSortBrowserColumn(WMBrowser *bPtr, int column);
|
void WMSortBrowserColumn(WMBrowser *bPtr, int column);
|
||||||
|
|
||||||
|
void WMSortBrowserColumnWithComparer(WMBrowser *bPtr, int column,
|
||||||
|
int (f)(const void*, const void*));
|
||||||
|
|
||||||
/* Don't free the returned string. */
|
/* Don't free the returned string. */
|
||||||
char* WMSetBrowserPath(WMBrowser *bPtr, char *path);
|
char* WMSetBrowserPath(WMBrowser *bPtr, char *path);
|
||||||
|
|
||||||
@@ -1248,8 +1251,20 @@ void WMSetSliderImage(WMSlider *sPtr, WMPixmap *pixmap);
|
|||||||
|
|
||||||
/* ....................................................................... */
|
/* ....................................................................... */
|
||||||
|
|
||||||
/* only supports 2 subviews */
|
|
||||||
WMSplitView *WMCreateSplitView(WMWidget *parent);
|
WMSplitView *WMCreateSplitView(WMWidget *parent);
|
||||||
|
Bool WMGetSplitViewVertical(WMSplitView *sPtr);
|
||||||
|
void WMSetSplitViewVertical(WMSplitView *sPtr, Bool flag);
|
||||||
|
|
||||||
|
int WMGetSplitViewSubViewsCount(WMSplitView *sPtr); /* ??? remove ??? */
|
||||||
|
|
||||||
|
WMView *WMGetSplitViewSubViewAt(WMSplitView *sPtr, int index);
|
||||||
|
|
||||||
|
/* remove the first subview == view */
|
||||||
|
void WMRemoveSplitViewSubview(WMSplitView *sPtr, WMView *view);
|
||||||
|
|
||||||
|
void WMRemoveSplitViewSubviewAt(WMSplitView *sPtr, int index);
|
||||||
|
|
||||||
|
|
||||||
void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview);
|
void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview);
|
||||||
|
|
||||||
@@ -1297,7 +1312,6 @@ void WMSelectTabViewItemAtIndex(WMTabView *tPtr, int index);
|
|||||||
|
|
||||||
void WMSetTabViewDelegate(WMTabView *tPtr, WMTabViewDelegate *delegate);
|
void WMSetTabViewDelegate(WMTabView *tPtr, WMTabViewDelegate *delegate);
|
||||||
|
|
||||||
/* ....................................................................... */
|
|
||||||
|
|
||||||
WMTabViewItem *WMCreateTabViewItemWithIdentifier(int identifier);
|
WMTabViewItem *WMCreateTabViewItemWithIdentifier(int identifier);
|
||||||
|
|
||||||
|
|||||||
@@ -351,6 +351,7 @@ typedef struct W_EventHandler {
|
|||||||
typedef struct _WINGsConfiguration {
|
typedef struct _WINGsConfiguration {
|
||||||
char *systemFont;
|
char *systemFont;
|
||||||
char *boldSystemFont;
|
char *boldSystemFont;
|
||||||
|
int defaultFontSize;
|
||||||
Bool useMultiByte;
|
Bool useMultiByte;
|
||||||
unsigned doubleClickDelay;
|
unsigned doubleClickDelay;
|
||||||
} _WINGsConfiguration;
|
} _WINGsConfiguration;
|
||||||
|
|||||||
@@ -253,6 +253,7 @@ void *WMGetFromBag(WMBag *bag, int index);
|
|||||||
|
|
||||||
int WMCountInBag(WMBag *bag, void *item);
|
int WMCountInBag(WMBag *bag, void *item);
|
||||||
|
|
||||||
|
void *WMReplaceInBag(WMBag *bag, int index, void *item);
|
||||||
|
|
||||||
/* comparer must return:
|
/* comparer must return:
|
||||||
* < 0 if a < b
|
* < 0 if a < b
|
||||||
|
|||||||
21
WINGs/bag.c
21
WINGs/bag.c
@@ -130,8 +130,7 @@ WMRemoveFromBag(WMBag *bag, void *item)
|
|||||||
void
|
void
|
||||||
WMDeleteFromBag(WMBag *bag, int index)
|
WMDeleteFromBag(WMBag *bag, int index)
|
||||||
{
|
{
|
||||||
if (index < 0 || index >= bag->count)
|
wassertr(index >= 0 && index < bag->count);
|
||||||
return;
|
|
||||||
|
|
||||||
if (index < bag->count-1) {
|
if (index < bag->count-1) {
|
||||||
memmove(&bag->items[index], &bag->items[index + 1],
|
memmove(&bag->items[index], &bag->items[index + 1],
|
||||||
@@ -144,9 +143,7 @@ WMDeleteFromBag(WMBag *bag, int index)
|
|||||||
void*
|
void*
|
||||||
WMGetFromBag(WMBag *bag, int index)
|
WMGetFromBag(WMBag *bag, int index)
|
||||||
{
|
{
|
||||||
if (index < 0 || index >= bag->count) {
|
wassertrv(index >= 0 && index < bag->count, NULL);
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return bag->items[index];
|
return bag->items[index];
|
||||||
}
|
}
|
||||||
@@ -203,3 +200,17 @@ WMMapBag(WMBag *bag, void *(*function)(void *))
|
|||||||
return new;
|
return new;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void*
|
||||||
|
WMReplaceInBag(WMBag *bag, int index, void *item)
|
||||||
|
{
|
||||||
|
void *old;
|
||||||
|
|
||||||
|
wassertrv(index >= 0 && index < bag->count, NULL);
|
||||||
|
|
||||||
|
old = bag->items[index];
|
||||||
|
|
||||||
|
bag->items[index] = item;
|
||||||
|
|
||||||
|
return old;
|
||||||
|
}
|
||||||
|
|||||||
@@ -38,8 +38,12 @@ W_ReadConfigurations(void)
|
|||||||
|
|
||||||
WINGsConfiguration.doubleClickDelay =
|
WINGsConfiguration.doubleClickDelay =
|
||||||
WMGetUDIntegerForKey(defaults, "DoubleClickTime");
|
WMGetUDIntegerForKey(defaults, "DoubleClickTime");
|
||||||
|
|
||||||
|
WINGsConfiguration.defaultFontSize =
|
||||||
|
WMGetUDIntegerForKey(defaults, "DefaultFontSize");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!WINGsConfiguration.systemFont) {
|
if (!WINGsConfiguration.systemFont) {
|
||||||
WINGsConfiguration.systemFont = SYSTEM_FONT;
|
WINGsConfiguration.systemFont = SYSTEM_FONT;
|
||||||
}
|
}
|
||||||
@@ -49,5 +53,9 @@ W_ReadConfigurations(void)
|
|||||||
if (WINGsConfiguration.doubleClickDelay == 0) {
|
if (WINGsConfiguration.doubleClickDelay == 0) {
|
||||||
WINGsConfiguration.doubleClickDelay = 250;
|
WINGsConfiguration.doubleClickDelay = 250;
|
||||||
}
|
}
|
||||||
|
if (WINGsConfiguration.defaultFontSize == 0) {
|
||||||
|
WINGsConfiguration.defaultFontSize = 12;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -440,6 +440,14 @@ WMSortBrowserColumn(WMBrowser *bPtr, int column)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
WMSortBrowserColumnWithComparer(WMBrowser *bPtr, int column,
|
||||||
|
int (f)(const void*, const void*))
|
||||||
|
{
|
||||||
|
WMSortListItemsWithComparer(bPtr->columns[column], f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WMListItem*
|
WMListItem*
|
||||||
WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text,
|
WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text,
|
||||||
|
|||||||
@@ -532,6 +532,19 @@ filterFileName(WMFilePanel *panel, char *file, Bool isDirectory)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define CAST(item) (*((WMListItem**)item))
|
||||||
|
static int
|
||||||
|
comparer(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
if (CAST(a)->isBranch == CAST(b)->isBranch)
|
||||||
|
return (strcmp(CAST(a)->text, CAST(b)->text));
|
||||||
|
if (CAST(a)->isBranch)
|
||||||
|
return (-1);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
#undef CAST
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
listDirectoryOnColumn(WMFilePanel *panel, int column, char *path)
|
listDirectoryOnColumn(WMFilePanel *panel, int column, char *path)
|
||||||
{
|
{
|
||||||
@@ -581,7 +594,7 @@ listDirectoryOnColumn(WMFilePanel *panel, int column, char *path)
|
|||||||
WMInsertBrowserItem(bPtr, column, -1, dentry->d_name, isDirectory);
|
WMInsertBrowserItem(bPtr, column, -1, dentry->d_name, isDirectory);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WMSortBrowserColumn(bPtr, column);
|
WMSortBrowserColumnWithComparer(bPtr, column, comparer);
|
||||||
|
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,13 +82,15 @@ static void sizeClick(WMWidget *, void *);
|
|||||||
|
|
||||||
static void listFamilies(WMScreen *scr, WMFontPanel *panel);
|
static void listFamilies(WMScreen *scr, WMFontPanel *panel);
|
||||||
|
|
||||||
static void
|
|
||||||
splitViewConstrainCallback(WMSplitView *sPtr, int divIndex, int *min, int *max)
|
|
||||||
{
|
|
||||||
*min = MIN_UPPER_HEIGHT;
|
|
||||||
*max = WMWidgetHeight(sPtr)-BUTTON_SPACE_HEIGHT-MIN_LOWER_HEIGHT;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
splitViewConstrainCallback(WMSplitView *sPtr, int indView, int *min, int *max)
|
||||||
|
{
|
||||||
|
if (indView == 0)
|
||||||
|
*min = MIN_UPPER_HEIGHT;
|
||||||
|
else
|
||||||
|
*min = MIN_LOWER_HEIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
notificationObserver(void *self, WMNotification *notif)
|
notificationObserver(void *self, WMNotification *notif)
|
||||||
|
|||||||
@@ -635,9 +635,11 @@ WMCreateScreenWithRContext(Display *display, int screen, RContext *context)
|
|||||||
|
|
||||||
scrPtr->useMultiByte = WINGsConfiguration.useMultiByte;
|
scrPtr->useMultiByte = WINGsConfiguration.useMultiByte;
|
||||||
|
|
||||||
scrPtr->normalFont = WMSystemFontOfSize(scrPtr, 12);
|
scrPtr->normalFont = WMSystemFontOfSize(scrPtr,
|
||||||
|
WINGsConfiguration.defaultFontSize);
|
||||||
|
|
||||||
scrPtr->boldFont = WMBoldSystemFontOfSize(scrPtr, 12);
|
scrPtr->boldFont = WMBoldSystemFontOfSize(scrPtr,
|
||||||
|
WINGsConfiguration.defaultFontSize);
|
||||||
|
|
||||||
if (!scrPtr->boldFont)
|
if (!scrPtr->boldFont)
|
||||||
scrPtr->boldFont = scrPtr->normalFont;
|
scrPtr->boldFont = scrPtr->normalFont;
|
||||||
|
|||||||
@@ -130,15 +130,7 @@ WMCreateList(WMWidget *parent)
|
|||||||
static int
|
static int
|
||||||
comparator(const void *a, const void *b)
|
comparator(const void *a, const void *b)
|
||||||
{
|
{
|
||||||
WMListItem *item1 = *(WMListItem**)a;
|
return (strcmp((*(WMListItem**)a)->text, (*(WMListItem**)b)->text));
|
||||||
WMListItem *item2 = *(WMListItem**)b;
|
|
||||||
|
|
||||||
if (strcmp(item1->text, item2->text) < 0)
|
|
||||||
return -1;
|
|
||||||
else if (strcmp(item1->text, item2->text) > 0)
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1009
WINGs/wsplitview.c
1009
WINGs/wsplitview.c
File diff suppressed because it is too large
Load Diff
172
WINGs/wtest.c
172
WINGs/wtest.c
@@ -393,7 +393,6 @@ testPullDown(WMScreen *scr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
testTabView(WMScreen *scr)
|
testTabView(WMScreen *scr)
|
||||||
{
|
{
|
||||||
@@ -461,6 +460,172 @@ testTabView(WMScreen *scr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
splitViewConstrainProc(WMSplitView *sPtr, int indView,
|
||||||
|
int *minSize, int *maxSize)
|
||||||
|
{
|
||||||
|
switch (indView) {
|
||||||
|
case 0:
|
||||||
|
*minSize = 20;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
*minSize = 40;
|
||||||
|
*maxSize = 80;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
*maxSize = 60;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
resizeSplitView(XEvent *event, void *data)
|
||||||
|
{
|
||||||
|
WMSplitView *sPtr = (WMSplitView*)data;
|
||||||
|
|
||||||
|
if (event->type == ConfigureNotify) {
|
||||||
|
int width = event->xconfigure.width - 10;
|
||||||
|
|
||||||
|
if (width < WMGetSplitViewDividerThickness(sPtr))
|
||||||
|
width = WMGetSplitViewDividerThickness(sPtr);
|
||||||
|
|
||||||
|
if (width != WMWidgetWidth(sPtr) ||
|
||||||
|
event->xconfigure.height != WMWidgetHeight(sPtr))
|
||||||
|
WMResizeWidget(sPtr, width, event->xconfigure.height - 55);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
appendSubviewButtonAction(WMWidget *self, void *data)
|
||||||
|
{
|
||||||
|
WMSplitView *sPtr = (WMSplitView*)data;
|
||||||
|
char buf[64];
|
||||||
|
WMLabel *label = WMCreateLabel(sPtr);
|
||||||
|
|
||||||
|
sprintf(buf, "Subview %d", WMGetSplitViewSubViewsCount(sPtr) + 1);
|
||||||
|
WMSetLabelText(label, buf);
|
||||||
|
WMSetLabelRelief(label, WRSunken);
|
||||||
|
WMAddSplitViewSubview(sPtr, WMWidgetView(label));
|
||||||
|
WMRealizeWidget(label);
|
||||||
|
WMMapWidget(label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
removeSubviewButtonAction(WMWidget *self, void *data)
|
||||||
|
{
|
||||||
|
WMSplitView *sPtr = (WMSplitView*)data;
|
||||||
|
int count = WMGetSplitViewSubViewsCount(sPtr);
|
||||||
|
|
||||||
|
if (count > 2) {
|
||||||
|
WMView *view = WMGetSplitViewSubViewAt(sPtr, count-1);
|
||||||
|
WMDestroyWidget(WMWidgetOfView(view));
|
||||||
|
WMRemoveSplitViewSubviewAt(sPtr, count-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
orientationButtonAction(WMWidget *self, void *data)
|
||||||
|
{
|
||||||
|
WMSplitView *sPtr = (WMSplitView*)data;
|
||||||
|
WMSetSplitViewVertical(sPtr, !WMGetSplitViewVertical(sPtr));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
adjustSubviewsButtonAction(WMWidget *self, void *data)
|
||||||
|
{
|
||||||
|
WMAdjustSplitViewSubViews((WMSplitView*)data);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
testSplitView(WMScreen *scr)
|
||||||
|
{
|
||||||
|
WMWindow *win;
|
||||||
|
WMSplitView *splitv1, *splitv2;
|
||||||
|
WMFrame *frame;
|
||||||
|
WMLabel *label;
|
||||||
|
WMButton *button;
|
||||||
|
|
||||||
|
windowCount++;
|
||||||
|
|
||||||
|
win = WMCreateWindow(scr, "testTabs");
|
||||||
|
WMResizeWidget(win, 300, 400);
|
||||||
|
WMSetWindowCloseAction(win, closeAction, NULL);
|
||||||
|
|
||||||
|
frame = WMCreateFrame(win);
|
||||||
|
WMSetFrameRelief(frame, WRSunken);
|
||||||
|
WMMoveWidget(frame, 5, 5);
|
||||||
|
WMResizeWidget(frame, 290, 40);
|
||||||
|
|
||||||
|
splitv1 = WMCreateSplitView(win);
|
||||||
|
WMMoveWidget(splitv1, 5, 50);
|
||||||
|
WMResizeWidget(splitv1, 290, 345);
|
||||||
|
WMSetSplitViewConstrainProc(splitv1, splitViewConstrainProc);
|
||||||
|
WMCreateEventHandler(WMWidgetView(win), StructureNotifyMask,
|
||||||
|
resizeSplitView, splitv1);
|
||||||
|
|
||||||
|
button = WMCreateCommandButton(frame);
|
||||||
|
WMSetButtonText(button, "+");
|
||||||
|
WMSetButtonAction(button, appendSubviewButtonAction, splitv1);
|
||||||
|
WMMoveWidget(button, 10, 8);
|
||||||
|
WMMapWidget(button);
|
||||||
|
|
||||||
|
button = WMCreateCommandButton(frame);
|
||||||
|
WMSetButtonText(button, "-");
|
||||||
|
WMSetButtonAction(button, removeSubviewButtonAction, splitv1);
|
||||||
|
WMMoveWidget(button, 80, 8);
|
||||||
|
WMMapWidget(button);
|
||||||
|
|
||||||
|
button = WMCreateCommandButton(frame);
|
||||||
|
WMSetButtonText(button, "=");
|
||||||
|
WMMoveWidget(button, 150, 8);
|
||||||
|
WMSetButtonAction(button, adjustSubviewsButtonAction, splitv1);
|
||||||
|
WMMapWidget(button);
|
||||||
|
|
||||||
|
button = WMCreateCommandButton(frame);
|
||||||
|
WMSetButtonText(button, "#");
|
||||||
|
WMMoveWidget(button, 220, 8);
|
||||||
|
WMSetButtonAction(button, orientationButtonAction, splitv1);
|
||||||
|
WMMapWidget(button);
|
||||||
|
|
||||||
|
label = WMCreateLabel(splitv1);
|
||||||
|
WMSetLabelText(label, "Subview 1");
|
||||||
|
WMSetLabelRelief(label, WRSunken);
|
||||||
|
WMMapWidget(label);
|
||||||
|
WMAddSplitViewSubview(splitv1, WMWidgetView(label));
|
||||||
|
|
||||||
|
splitv2 = WMCreateSplitView(splitv1);
|
||||||
|
WMResizeWidget(splitv2, 150, 150);
|
||||||
|
WMSetSplitViewVertical(splitv2, True);
|
||||||
|
|
||||||
|
label = WMCreateLabel(splitv2);
|
||||||
|
WMSetLabelText(label, "Subview 2.1");
|
||||||
|
WMSetLabelRelief(label, WRSunken);
|
||||||
|
WMMapWidget(label);
|
||||||
|
WMAddSplitViewSubview(splitv2, WMWidgetView(label));
|
||||||
|
|
||||||
|
label = WMCreateLabel(splitv2);
|
||||||
|
WMSetLabelText(label, "Subview 2.2");
|
||||||
|
WMSetLabelRelief(label, WRSunken);
|
||||||
|
WMMapWidget(label);
|
||||||
|
WMAddSplitViewSubview(splitv2, WMWidgetView(label));
|
||||||
|
|
||||||
|
label = WMCreateLabel(splitv2);
|
||||||
|
WMSetLabelText(label, "Subview 2.3");
|
||||||
|
WMSetLabelRelief(label, WRSunken);
|
||||||
|
WMMapWidget(label);
|
||||||
|
WMAddSplitViewSubview(splitv2, WMWidgetView(label));
|
||||||
|
|
||||||
|
WMMapWidget(splitv2);
|
||||||
|
WMAddSplitViewSubview(splitv1, WMWidgetView(splitv2));
|
||||||
|
|
||||||
|
WMRealizeWidget(win);
|
||||||
|
WMMapSubwidgets(win);
|
||||||
|
WMMapWidget(win);
|
||||||
|
}
|
||||||
|
|
||||||
#include "WUtil.h"
|
#include "WUtil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -513,8 +678,7 @@ int main(int argc, char **argv)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
testPullDown(scr);
|
testSplitView(scr);
|
||||||
|
|
||||||
testFontPanel(scr);
|
testFontPanel(scr);
|
||||||
#if 0
|
#if 0
|
||||||
|
|
||||||
@@ -527,11 +691,11 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
testOpenFilePanel(scr);
|
testOpenFilePanel(scr);
|
||||||
testList(scr);
|
testList(scr);
|
||||||
testGradientButtons(scr);
|
|
||||||
testScrollView(scr);
|
testScrollView(scr);
|
||||||
|
|
||||||
|
|
||||||
testSlider(scr);
|
testSlider(scr);
|
||||||
|
testPullDown(scr);
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* The main event loop.
|
* The main event loop.
|
||||||
|
|||||||
2463
WPrefs.app/po/es.po
2463
WPrefs.app/po/es.po
File diff suppressed because it is too large
Load Diff
@@ -107,14 +107,14 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Backgrounds/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Backgrounds/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -146,6 +146,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WindowMaker/Backgrounds
|
subdir = WindowMaker/Backgrounds
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WindowMaker/Backgrounds/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -109,14 +109,14 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Defaults/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Defaults/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -148,6 +148,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WindowMaker/Defaults
|
subdir = WindowMaker/Defaults
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WindowMaker/Defaults/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -109,14 +109,14 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/IconSets/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/IconSets/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -148,6 +148,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WindowMaker/IconSets
|
subdir = WindowMaker/IconSets
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WindowMaker/IconSets/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -108,14 +108,14 @@ DIST_COMMON = README Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Icons/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Icons/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -147,6 +147,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WindowMaker/Icons
|
subdir = WindowMaker/Icons
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WindowMaker/Icons/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -110,14 +110,14 @@ DIST_COMMON = README Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -235,6 +235,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WindowMaker
|
subdir = WindowMaker
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WindowMaker/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -108,14 +108,14 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Pixmaps/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Pixmaps/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -147,6 +147,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WindowMaker/Pixmaps
|
subdir = WindowMaker/Pixmaps
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WindowMaker/Pixmaps/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -108,14 +108,14 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Styles/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Styles/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -147,6 +147,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WindowMaker/Styles
|
subdir = WindowMaker/Styles
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WindowMaker/Styles/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -107,14 +107,14 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Themes/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WindowMaker/Themes/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -146,6 +146,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = WindowMaker/Themes
|
subdir = WindowMaker/Themes
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu WindowMaker/Themes/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -101,14 +101,14 @@ DIST_COMMON = README Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps contrib/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu contrib/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -121,6 +121,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = contrib
|
subdir = contrib
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu contrib/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -108,14 +108,14 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -167,6 +167,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = doc
|
subdir = doc
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu doc/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -118,15 +118,15 @@ DIST_COMMON = README Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .mo .po
|
.SUFFIXES: .mo .po
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps po/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu po/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
@@ -139,6 +139,11 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|||||||
subdir = po
|
subdir = po
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu po/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
d=$(srcdir); \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
|
|||||||
@@ -456,7 +456,7 @@ wGNOMEProcessClientMessage(XClientMessageEvent *event)
|
|||||||
WWindow *wwin;
|
WWindow *wwin;
|
||||||
Bool done = True;
|
Bool done = True;
|
||||||
|
|
||||||
scr = wScreenForRootWindow(event->window);
|
scr = wScreenForWindow(event->window);
|
||||||
if (scr) {
|
if (scr) {
|
||||||
/* generic client messages */
|
/* generic client messages */
|
||||||
if (event->message_type == _XA_WIN_WORKSPACE) {
|
if (event->message_type == _XA_WIN_WORKSPACE) {
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ static int ArgCount;
|
|||||||
extern void EventLoop();
|
extern void EventLoop();
|
||||||
extern void StartUp();
|
extern void StartUp();
|
||||||
|
|
||||||
|
static Bool multiHead = True;
|
||||||
|
|
||||||
/* stdi/o for log shell */
|
/* stdi/o for log shell */
|
||||||
static int LogStdIn = -1, LogStdOut = -1, LogStdErr = -1;
|
static int LogStdIn = -1, LogStdOut = -1, LogStdErr = -1;
|
||||||
|
|
||||||
@@ -210,7 +212,7 @@ SetupEnvironment(WScreen *scr)
|
|||||||
char *tmp, *ptr;
|
char *tmp, *ptr;
|
||||||
char buf[16];
|
char buf[16];
|
||||||
|
|
||||||
if (wScreenCount > 1) {
|
if (multiHead) {
|
||||||
tmp = wmalloc(strlen(DisplayName)+64);
|
tmp = wmalloc(strlen(DisplayName)+64);
|
||||||
sprintf(tmp, "DISPLAY=%s", XDisplayName(DisplayName));
|
sprintf(tmp, "DISPLAY=%s", XDisplayName(DisplayName));
|
||||||
ptr = strchr(strchr(tmp, ':'), '.');
|
ptr = strchr(strchr(tmp, ':'), '.');
|
||||||
@@ -540,7 +542,6 @@ int
|
|||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int i, restart=0;
|
int i, restart=0;
|
||||||
Bool multiHead = True;
|
|
||||||
char *str;
|
char *str;
|
||||||
int d, s;
|
int d, s;
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -745,6 +746,9 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
StartUp(!multiHead);
|
StartUp(!multiHead);
|
||||||
|
|
||||||
|
if (wScreenCount==1)
|
||||||
|
multiHead = False;
|
||||||
|
|
||||||
execInitScript();
|
execInitScript();
|
||||||
|
|
||||||
EventLoop();
|
EventLoop();
|
||||||
|
|||||||
213
src/moveres.c
213
src/moveres.c
@@ -67,6 +67,9 @@ extern Atom _XA_WM_PROTOCOLS;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
wGetGeometryWindowSize(WScreen *scr, unsigned int *width,
|
wGetGeometryWindowSize(WScreen *scr, unsigned int *width,
|
||||||
unsigned int *height)
|
unsigned int *height)
|
||||||
@@ -77,6 +80,32 @@ wGetGeometryWindowSize(WScreen *scr, unsigned int *width,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
*----------------------------------------------------------------------
|
||||||
|
* checkMouseSamplingRate-
|
||||||
|
* For lowering the mouse motion sampling rate for machines where
|
||||||
|
* it's too high (SGIs). If it returns False then the event should be
|
||||||
|
* ignored.
|
||||||
|
*----------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
static Bool
|
||||||
|
checkMouseSamplingRate(XEvent *ev)
|
||||||
|
{
|
||||||
|
static Time previousMotion = 0;
|
||||||
|
|
||||||
|
if (ev->type == MotionNotify) {
|
||||||
|
if (ev->xmotion.time - previousMotion < DELAY_BETWEEN_MOUSE_SAMPLING) {
|
||||||
|
return False;
|
||||||
|
} else {
|
||||||
|
previousMotion = ev->xmotion.time;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return True;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*----------------------------------------------------------------------
|
*----------------------------------------------------------------------
|
||||||
* moveGeometryDisplayCentered
|
* moveGeometryDisplayCentered
|
||||||
@@ -1592,6 +1621,8 @@ wMouseMoveWindow(WWindow *wwin, XEvent *ev)
|
|||||||
if (event.type == MotionNotify) {
|
if (event.type == MotionNotify) {
|
||||||
/* compress MotionNotify events */
|
/* compress MotionNotify events */
|
||||||
while (XCheckMaskEvent(dpy, ButtonMotionMask, &event)) ;
|
while (XCheckMaskEvent(dpy, ButtonMotionMask, &event)) ;
|
||||||
|
if (!checkMouseSamplingRate(&event))
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
@@ -1876,6 +1907,10 @@ wMouseResizeWindow(WWindow *wwin, XEvent *ev)
|
|||||||
while (1) {
|
while (1) {
|
||||||
WMMaskEvent(dpy, KeyPressMask | ButtonMotionMask | ButtonReleaseMask
|
WMMaskEvent(dpy, KeyPressMask | ButtonMotionMask | ButtonReleaseMask
|
||||||
| ButtonPressMask | ExposureMask, &event);
|
| ButtonPressMask | ExposureMask, &event);
|
||||||
|
|
||||||
|
if (!checkMouseSamplingRate(&event))
|
||||||
|
continue;
|
||||||
|
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case KeyPress:
|
case KeyPress:
|
||||||
showGeometry(wwin, fx, fy, fx + fw, fy + fh, res);
|
showGeometry(wwin, fx, fy, fx + fw, fy + fh, res);
|
||||||
@@ -2080,13 +2115,19 @@ wSelectWindows(WScreen *scr, XEvent *ev)
|
|||||||
int xp = ev->xbutton.x_root;
|
int xp = ev->xbutton.x_root;
|
||||||
int yp = ev->xbutton.y_root;
|
int yp = ev->xbutton.y_root;
|
||||||
int w = 0, h = 0;
|
int w = 0, h = 0;
|
||||||
int x = xp, y = yp;
|
int nx = xp, ny = yp, ox = xp, oy = yp, update_selection = 0;
|
||||||
|
XSegment segments[8]; /* 8 segments is the most possible */
|
||||||
|
/* it may be beneficial to use */
|
||||||
|
/* XDrawRectangle for 8 segment case */
|
||||||
|
int nsegs = 0;
|
||||||
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
puts("Selecting windows");
|
puts("Selecting windows");
|
||||||
#endif
|
#endif
|
||||||
if (XGrabPointer(dpy, scr->root_win, False, ButtonMotionMask
|
if (XGrabPointer(dpy, scr->root_win, True, PointerMotionMask
|
||||||
| ButtonReleaseMask | ButtonPressMask, GrabModeAsync,
|
| ButtonMotionMask | ButtonReleaseMask | ButtonPressMask
|
||||||
|
| EnterWindowMask | LeaveWindowMask , GrabModeAsync,
|
||||||
GrabModeAsync, None, wCursor[WCUR_DEFAULT],
|
GrabModeAsync, None, wCursor[WCUR_DEFAULT],
|
||||||
CurrentTime) != Success) {
|
CurrentTime) != Success) {
|
||||||
return;
|
return;
|
||||||
@@ -2095,29 +2136,36 @@ wSelectWindows(WScreen *scr, XEvent *ev)
|
|||||||
|
|
||||||
wUnselectWindows(scr);
|
wUnselectWindows(scr);
|
||||||
|
|
||||||
XDrawRectangle(dpy, root, gc, xp, yp, w, h);
|
|
||||||
while (1) {
|
while (1) {
|
||||||
WMMaskEvent(dpy, ButtonReleaseMask | PointerMotionMask
|
update_selection = 0;
|
||||||
| ButtonPressMask, &event);
|
|
||||||
|
|
||||||
|
WMMaskEvent(dpy, ButtonReleaseMask | PointerMotionMask | LeaveWindowMask
|
||||||
|
| EnterWindowMask | ButtonPressMask,
|
||||||
|
&event);
|
||||||
|
|
||||||
|
if (!checkMouseSamplingRate(&event))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
nsegs = 0;
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
|
case LeaveNotify:
|
||||||
|
case EnterNotify:
|
||||||
|
#ifdef DEBUG
|
||||||
|
dbputs("got Enter/LeaveNotify in selection");
|
||||||
|
#endif
|
||||||
|
nx = event.xcrossing.x_root;
|
||||||
|
ny = event.xcrossing.y_root;
|
||||||
|
update_selection = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
case MotionNotify:
|
case MotionNotify:
|
||||||
XDrawRectangle(dpy, root, gc, x, y, w, h);
|
#ifdef DEBUG
|
||||||
x = event.xmotion.x_root;
|
dbputs("got motionevent in selection");
|
||||||
if (x < xp) {
|
#endif
|
||||||
w = xp - x;
|
nx = event.xmotion.x_root;
|
||||||
} else {
|
ny = event.xmotion.y_root;
|
||||||
w = x - xp;
|
update_selection = 1;
|
||||||
x = xp;
|
|
||||||
}
|
|
||||||
y = event.xmotion.y_root;
|
|
||||||
if (y < yp) {
|
|
||||||
h = yp - y;
|
|
||||||
} else {
|
|
||||||
h = y - yp;
|
|
||||||
y = yp;
|
|
||||||
}
|
|
||||||
XDrawRectangle(dpy, root, gc, x, y, w, h);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ButtonPress:
|
case ButtonPress:
|
||||||
@@ -2127,10 +2175,22 @@ wSelectWindows(WScreen *scr, XEvent *ev)
|
|||||||
if (event.xbutton.button != ev->xbutton.button)
|
if (event.xbutton.button != ev->xbutton.button)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
XDrawRectangle(dpy, root, gc, x, y, w, h);
|
if(nx > xp) w = nx - xp;
|
||||||
|
else if(nx < xp) {
|
||||||
|
w = xp - nx;
|
||||||
|
xp = nx;
|
||||||
|
} else w = 0;
|
||||||
|
|
||||||
|
if(ny > yp) h = ny - yp;
|
||||||
|
else if(ny < yp) {
|
||||||
|
h = yp - ny;
|
||||||
|
yp = ny;
|
||||||
|
} else h = 0;
|
||||||
|
|
||||||
|
XDrawRectangle(dpy, root, gc, xp, yp, w, h);
|
||||||
XUngrabServer(dpy);
|
XUngrabServer(dpy);
|
||||||
XUngrabPointer(dpy, CurrentTime);
|
XUngrabPointer(dpy, CurrentTime);
|
||||||
selectWindowsInside(scr, x, y, x + w, y + h);
|
selectWindowsInside(scr, xp, yp, w + xp, h + yp);
|
||||||
|
|
||||||
#ifdef KWM_HINTS
|
#ifdef KWM_HINTS
|
||||||
wKWMSelectRootRegion(scr, x, y, w, h,
|
wKWMSelectRootRegion(scr, x, y, w, h,
|
||||||
@@ -2138,14 +2198,113 @@ wSelectWindows(WScreen *scr, XEvent *ev)
|
|||||||
#endif /* KWM_HINTS */
|
#endif /* KWM_HINTS */
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
puts("End window selection");
|
dbputs("End window selection");
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
#ifdef DEBUG
|
||||||
|
dbputs("unknown event");
|
||||||
|
dbprintf("type: %u\n", event.type);
|
||||||
|
#endif
|
||||||
WMHandleEvent(&event);
|
WMHandleEvent(&event);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(update_selection) {
|
||||||
|
/* stuff to change for movement along X axis */
|
||||||
|
if(nx != ox) {
|
||||||
|
|
||||||
|
/* erase old vertical line */
|
||||||
|
/* only if old vertical line exists */
|
||||||
|
/* and only if its different from other vertical line */
|
||||||
|
if(yp != oy && ox != xp) {
|
||||||
|
segments[nsegs].x1 = ox;
|
||||||
|
segments[nsegs].y1 = yp;
|
||||||
|
segments[nsegs].x2 = ox;
|
||||||
|
segments[nsegs].y2 = oy;
|
||||||
|
nsegs++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* draw new vertical line */
|
||||||
|
/* only if new vertical line exists */
|
||||||
|
/* and only if its different from the other vertical line */
|
||||||
|
if(yp != ny && nx != xp) {
|
||||||
|
segments[nsegs].x1 = nx;
|
||||||
|
segments[nsegs].y1 = yp;
|
||||||
|
segments[nsegs].x2 = nx;
|
||||||
|
segments[nsegs].y2 = ny;
|
||||||
|
nsegs++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* difference along x axis from old to new on ny horizontal */
|
||||||
|
/* only if our mouse doesnt move along Y, otherwise this gets */
|
||||||
|
/* done elsewhere */
|
||||||
|
if(ny == oy && nx != xp) {
|
||||||
|
segments[nsegs].x1 = ox;
|
||||||
|
segments[nsegs].y1 = ny;
|
||||||
|
segments[nsegs].x2 = nx;
|
||||||
|
segments[nsegs].y2 = ny;
|
||||||
|
nsegs++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* difference along x axis from old to new on yp horizontal */
|
||||||
|
segments[nsegs].x1 = nx;
|
||||||
|
segments[nsegs].y1 = yp;
|
||||||
|
segments[nsegs].x2 = ox;
|
||||||
|
segments[nsegs].y2 = yp;
|
||||||
|
nsegs++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* now for stuff to change for movement along Y axis */
|
||||||
|
|
||||||
|
if(ny != oy) {
|
||||||
|
/* erase old horizontal line */
|
||||||
|
/* only if old horizontal line exists */
|
||||||
|
/* and only if its different from other horizontal line */
|
||||||
|
if(xp != ox && oy != yp) {
|
||||||
|
segments[nsegs].x1 = ox;
|
||||||
|
segments[nsegs].y1 = oy;
|
||||||
|
segments[nsegs].x2 = xp;
|
||||||
|
segments[nsegs].y2 = oy;
|
||||||
|
nsegs++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* draw new horizontal line */
|
||||||
|
/* only if horizontal line exists, and if its different from other */
|
||||||
|
if(xp != nx && ny != yp) {
|
||||||
|
segments[nsegs].x1 = nx;
|
||||||
|
segments[nsegs].y1 = ny;
|
||||||
|
segments[nsegs].x2 = xp;
|
||||||
|
segments[nsegs].y2 = ny;
|
||||||
|
nsegs++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* difference along y axis from old to new on nx vertical */
|
||||||
|
/* only if no movement along x axis */
|
||||||
|
/* and only if we dont have duplicate lines */
|
||||||
|
if(nx == ox && nx != xp) {
|
||||||
|
segments[nsegs].x1 = nx;
|
||||||
|
segments[nsegs].y1 = oy;
|
||||||
|
segments[nsegs].x2 = nx;
|
||||||
|
segments[nsegs].y2 = ny;
|
||||||
|
nsegs++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* difference along y axis from old to new on xp vertical */
|
||||||
|
segments[nsegs].x1 = xp;
|
||||||
|
segments[nsegs].y1 = oy;
|
||||||
|
segments[nsegs].x2 = xp;
|
||||||
|
segments[nsegs].y2 = ny;
|
||||||
|
nsegs++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ox = nx;
|
||||||
|
oy = ny;
|
||||||
|
XDrawSegments(dpy, root, gc, segments, nsegs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* !LITE */
|
#endif /* !LITE */
|
||||||
@@ -2188,6 +2347,10 @@ InteractivePlaceWindow(WWindow *wwin, int *x_ret, int *y_ret,
|
|||||||
while (1) {
|
while (1) {
|
||||||
WMMaskEvent(dpy, PointerMotionMask|ButtonPressMask|ExposureMask|KeyPressMask,
|
WMMaskEvent(dpy, PointerMotionMask|ButtonPressMask|ExposureMask|KeyPressMask,
|
||||||
&event);
|
&event);
|
||||||
|
|
||||||
|
if (!checkMouseSamplingRate(&event))
|
||||||
|
continue;
|
||||||
|
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case KeyPress:
|
case KeyPress:
|
||||||
if ((event.xkey.keycode == shiftl)
|
if ((event.xkey.keycode == shiftl)
|
||||||
|
|||||||
@@ -1407,6 +1407,8 @@ readMenuDirectory(WScreen *scr, char *title, char **path, char *command)
|
|||||||
dir_data *d = (dir_data*)WMGetFromBag(dirs, i);
|
dir_data *d = (dir_data*)WMGetFromBag(dirs, i);
|
||||||
|
|
||||||
length = strlen(path[d->index])+strlen(d->name)+6;
|
length = strlen(path[d->index])+strlen(d->name)+6;
|
||||||
|
if (stripExtension)
|
||||||
|
length += 7;
|
||||||
if (command)
|
if (command)
|
||||||
length += strlen(command) + 6;
|
length += strlen(command) + 6;
|
||||||
buffer = malloc(length);
|
buffer = malloc(length);
|
||||||
@@ -1416,15 +1418,17 @@ readMenuDirectory(WScreen *scr, char *title, char **path, char *command)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buffer[0] = '\0';
|
||||||
|
if (stripExtension)
|
||||||
|
strcat(buffer, "-noext ");
|
||||||
|
|
||||||
have_space = strchr(path[d->index], ' ')!=NULL ||
|
have_space = strchr(path[d->index], ' ')!=NULL ||
|
||||||
strchr(d->name, ' ')!=NULL;
|
strchr(d->name, ' ')!=NULL;
|
||||||
if (have_space) {
|
|
||||||
buffer[0] = '"';
|
if (have_space)
|
||||||
buffer[1] = 0;
|
strcat(buffer, "\"");
|
||||||
strcat(buffer, path[d->index]);
|
strcat(buffer, path[d->index]);
|
||||||
} else {
|
|
||||||
strcpy(buffer, path[d->index]);
|
|
||||||
}
|
|
||||||
strcat(buffer, "/");
|
strcat(buffer, "/");
|
||||||
strcat(buffer, d->name);
|
strcat(buffer, d->name);
|
||||||
if (have_space)
|
if (have_space)
|
||||||
@@ -1450,7 +1454,7 @@ readMenuDirectory(WScreen *scr, char *title, char **path, char *command)
|
|||||||
if (command)
|
if (command)
|
||||||
length += strlen(command);
|
length += strlen(command);
|
||||||
|
|
||||||
buffer = wmalloc(length);
|
buffer = malloc(length);
|
||||||
if (!buffer) {
|
if (!buffer) {
|
||||||
wsyserror(_("out of memory while constructing directory menu %s"),
|
wsyserror(_("out of memory while constructing directory menu %s"),
|
||||||
path[f->index]);
|
path[f->index]);
|
||||||
|
|||||||
@@ -506,6 +506,9 @@
|
|||||||
#define FRAME_BORDER_COLOR "black"
|
#define FRAME_BORDER_COLOR "black"
|
||||||
|
|
||||||
|
|
||||||
|
/* for boxes with high mouse sampling rates (SGI) */
|
||||||
|
#define DELAY_BETWEEN_MOUSE_SAMPLING 10
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*----------------------------------------------------------------------
|
*----------------------------------------------------------------------
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ DIST_COMMON = Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
SOURCES = $(wtest_SOURCES)
|
SOURCES = $(wtest_SOURCES)
|
||||||
OBJECTS = $(wtest_OBJECTS)
|
OBJECTS = $(wtest_OBJECTS)
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ DIST_COMMON = README Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
SOURCES = $(wxcopy_SOURCES) $(wxpaste_SOURCES) $(wdwrite_SOURCES) $(getstyle_SOURCES) $(setstyle_SOURCES) $(seticons_SOURCES) $(geticonset_SOURCES) $(wmsetbg_SOURCES)
|
SOURCES = $(wxcopy_SOURCES) $(wxpaste_SOURCES) $(wdwrite_SOURCES) $(getstyle_SOURCES) $(setstyle_SOURCES) $(seticons_SOURCES) $(geticonset_SOURCES) $(wmsetbg_SOURCES)
|
||||||
OBJECTS = $(wxcopy_OBJECTS) $(wxpaste_OBJECTS) $(wdwrite_OBJECTS) $(getstyle_OBJECTS) $(setstyle_OBJECTS) $(seticons_OBJECTS) $(geticonset_OBJECTS) $(wmsetbg_OBJECTS)
|
OBJECTS = $(wxcopy_OBJECTS) $(wxpaste_OBJECTS) $(wdwrite_OBJECTS) $(getstyle_OBJECTS) $(setstyle_OBJECTS) $(seticons_OBJECTS) $(geticonset_OBJECTS) $(wmsetbg_OBJECTS)
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ DIST_COMMON = COPYING.LIB Makefile.am Makefile.in
|
|||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
SOURCES = $(libWMaker_a_SOURCES)
|
SOURCES = $(libWMaker_a_SOURCES)
|
||||||
OBJECTS = $(libWMaker_a_OBJECTS)
|
OBJECTS = $(libWMaker_a_OBJECTS)
|
||||||
|
|||||||
Reference in New Issue
Block a user