mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +01:00
replaced linked list with WMBag in WMList
replaced WMAddSorted*** with WMSort*** fixed crash bug in icon chooser
This commit is contained in:
@@ -5,7 +5,10 @@ changes since wmaker 0.61.0:
|
|||||||
- escape key in panels (craig nellist <crn@ozemail.com.au>)
|
- escape key in panels (craig nellist <crn@ozemail.com.au>)
|
||||||
- applied patch with fixes and enhancements to textfield
|
- applied patch with fixes and enhancements to textfield
|
||||||
(Franck Wolff <wolff@cybercable.fr>)
|
(Franck Wolff <wolff@cybercable.fr>)
|
||||||
|
- changed WMList to use WMBag internally, instead of a linked list
|
||||||
|
- replaced WMAddSortedListItem() with WMSortListItems()
|
||||||
|
- replaced WMAddSortedBrowserItem() with WMSortBrowserColumn()
|
||||||
|
- added WMGetListItems()
|
||||||
|
|
||||||
changes since wmaker 0.60.0:
|
changes since wmaker 0.60.0:
|
||||||
............................
|
............................
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ DIST_COMMON = README ChangeLog Makefile.am Makefile.in TODO
|
|||||||
|
|
||||||
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 = $(libWINGs_a_SOURCES) $(libWUtil_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES) $(testcolorpanel_SOURCES)
|
SOURCES = $(libWINGs_a_SOURCES) $(libWUtil_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES) $(testcolorpanel_SOURCES)
|
||||||
OBJECTS = $(libWINGs_a_OBJECTS) $(libWUtil_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS)
|
OBJECTS = $(libWINGs_a_OBJECTS) $(libWUtil_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS)
|
||||||
|
|||||||
@@ -107,7 +107,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
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
#include <WUtil.h>
|
#include <WUtil.h>
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
#define WINGS_H_VERSION 990516
|
#define WINGS_H_VERSION 991003
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@@ -328,8 +328,6 @@ typedef struct WMListItem {
|
|||||||
char *text;
|
char *text;
|
||||||
void *clientData; /* ptr for user clientdata. */
|
void *clientData; /* ptr for user clientdata. */
|
||||||
|
|
||||||
struct WMListItem *nextPtr;
|
|
||||||
|
|
||||||
unsigned int uflags:16; /* flags for the user */
|
unsigned int uflags:16; /* flags for the user */
|
||||||
unsigned int selected:1;
|
unsigned int selected:1;
|
||||||
unsigned int disabled:1;
|
unsigned int disabled:1;
|
||||||
@@ -950,12 +948,15 @@ WMList *WMCreateList(WMWidget *parent);
|
|||||||
|
|
||||||
WMListItem *WMInsertListItem(WMList *lPtr, int row, char *text);
|
WMListItem *WMInsertListItem(WMList *lPtr, int row, char *text);
|
||||||
|
|
||||||
WMListItem *WMAddSortedListItem(WMList *lPtr, char *text);
|
void WMSortListItems(WMList *lPtr);
|
||||||
|
|
||||||
int WMFindRowOfListItemWithTitle(WMList *lPtr, char *title);
|
int WMFindRowOfListItemWithTitle(WMList *lPtr, char *title);
|
||||||
|
|
||||||
WMListItem *WMGetListItem(WMList *lPtr, int row);
|
WMListItem *WMGetListItem(WMList *lPtr, int row);
|
||||||
|
|
||||||
|
WMBag *WMGetListItems(WMList *lPtr);
|
||||||
|
|
||||||
|
|
||||||
void WMRemoveListItem(WMList *lPtr, int row);
|
void WMRemoveListItem(WMList *lPtr, int row);
|
||||||
|
|
||||||
void WMSelectListItem(WMList *lPtr, int row);
|
void WMSelectListItem(WMList *lPtr, int row);
|
||||||
@@ -1006,10 +1007,10 @@ void WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns);
|
|||||||
|
|
||||||
void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
|
void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
|
||||||
|
|
||||||
WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch);
|
|
||||||
|
|
||||||
WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
|
WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
|
||||||
|
|
||||||
|
void WMSortBrowserColumn(WMBrowser *bPtr, int column);
|
||||||
|
|
||||||
/* Don't free the returned string. */
|
/* Don't free the returned string. */
|
||||||
char* WMSetBrowserPath(WMBrowser *bPtr, char *path);
|
char* WMSetBrowserPath(WMBrowser *bPtr, char *path);
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#include "WINGs.h"
|
#include "WINGs.h"
|
||||||
|
|
||||||
#if WINGS_H_VERSION < 990516
|
#if WINGS_H_VERSION < 991003
|
||||||
#error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it.
|
#error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -433,18 +433,10 @@ WMSetBrowserTitled(WMBrowser *bPtr, Bool flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WMListItem*
|
void
|
||||||
WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch)
|
WMSortBrowserColumn(WMBrowser *bPtr, int column)
|
||||||
{
|
{
|
||||||
WMListItem *item;
|
WMSortListItems(bPtr->columns[column]);
|
||||||
|
|
||||||
if (column < 0 || column >= bPtr->columnCount)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
item = WMAddSortedListItem(bPtr->columns[column], text);
|
|
||||||
item->isBranch = isBranch;
|
|
||||||
|
|
||||||
return item;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -102,22 +102,24 @@ static WMBrowserDelegate browserDelegate = {
|
|||||||
static int
|
static int
|
||||||
closestListItem(WMList *list, char *text, Bool exact)
|
closestListItem(WMList *list, char *text, Bool exact)
|
||||||
{
|
{
|
||||||
WMListItem *item = WMGetListItem(list, 0);
|
WMListItem *item;
|
||||||
int i = 0;
|
WMBag *items = WMGetListItems(list);
|
||||||
|
int i;
|
||||||
int len = strlen(text);
|
int len = strlen(text);
|
||||||
|
|
||||||
if (len==0)
|
if (len==0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
while (item) {
|
for (i = 0; i < WMGetBagItemCount(items); i++) {
|
||||||
|
item = WMGetFromBag(items, i);
|
||||||
|
|
||||||
if (strlen(item->text) >= len &&
|
if (strlen(item->text) >= len &&
|
||||||
((exact && strcmp(item->text, text)==0) ||
|
((exact && strcmp(item->text, text)==0) ||
|
||||||
(!exact && strncmp(item->text, text, len)==0))) {
|
(!exact && strncmp(item->text, text, len)==0))) {
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
item = item->nextPtr;
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,10 +578,10 @@ listDirectoryOnColumn(WMFilePanel *panel, int column, char *path)
|
|||||||
isDirectory = S_ISDIR(stat_buf.st_mode);
|
isDirectory = S_ISDIR(stat_buf.st_mode);
|
||||||
|
|
||||||
if (filterFileName(panel, dentry->d_name, isDirectory))
|
if (filterFileName(panel, dentry->d_name, isDirectory))
|
||||||
WMAddSortedBrowserItem(bPtr, column, dentry->d_name,
|
WMInsertBrowserItem(bPtr, column, -1, dentry->d_name, isDirectory);
|
||||||
isDirectory);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
WMSortBrowserColumn(bPtr, column);
|
||||||
|
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
}
|
}
|
||||||
@@ -646,7 +648,6 @@ createDir(WMButton *bPre, WMFilePanel *panel)
|
|||||||
char *directory;
|
char *directory;
|
||||||
char *file;
|
char *file;
|
||||||
char *s;
|
char *s;
|
||||||
char *err_str;
|
|
||||||
WMScreen *scr = WMWidgetScreen(panel->win);
|
WMScreen *scr = WMWidgetScreen(panel->win);
|
||||||
WMInputPanel *_panel;
|
WMInputPanel *_panel;
|
||||||
|
|
||||||
@@ -680,14 +681,14 @@ createDir(WMButton *bPre, WMFilePanel *panel)
|
|||||||
if (directory_name[0] == '/') {
|
if (directory_name[0] == '/') {
|
||||||
directory[0] = 0;
|
directory[0] = 0;
|
||||||
} else {
|
} else {
|
||||||
while (s = strstr(directory,"//")) {
|
while ((s = strstr(directory,"//"))) {
|
||||||
int i;
|
int i;
|
||||||
for (i = 2;s[i] == '/';i++);
|
for (i = 2;s[i] == '/';i++);
|
||||||
strcpy(s, &s[i-1]);
|
strcpy(s, &s[i-1]);
|
||||||
}
|
}
|
||||||
if ((s = strrchr(directory, '/')) && !s[1]) s[0] = 0;
|
if ((s = strrchr(directory, '/')) && !s[1]) s[0] = 0;
|
||||||
}
|
}
|
||||||
while (s = strstr(directory_name,"//")) {
|
while ((s = strstr(directory_name,"//"))) {
|
||||||
int i;
|
int i;
|
||||||
for (i = 2;s[i] == '/';i++);
|
for (i = 2;s[i] == '/';i++);
|
||||||
strcpy(s, &s[i-1]);
|
strcpy(s, &s[i-1]);
|
||||||
@@ -696,7 +697,7 @@ createDir(WMButton *bPre, WMFilePanel *panel)
|
|||||||
|
|
||||||
file = wmalloc(strlen(directory_name)+strlen(directory)+1);
|
file = wmalloc(strlen(directory_name)+strlen(directory)+1);
|
||||||
sprintf(file, "%s/%s", directory, directory_name);
|
sprintf(file, "%s/%s", directory, directory_name);
|
||||||
while (s = strstr(file,"//")) {
|
while ((s = strstr(file,"//"))) {
|
||||||
int i;
|
int i;
|
||||||
for (i = 2;s[i] == '/';i++);
|
for (i = 2;s[i] == '/';i++);
|
||||||
strcpy(s, &s[i-1]);
|
strcpy(s, &s[i-1]);
|
||||||
@@ -727,13 +728,12 @@ deleteFile(WMButton *bPre, WMFilePanel *panel)
|
|||||||
{
|
{
|
||||||
char *file;
|
char *file;
|
||||||
char *buffer, *s;
|
char *buffer, *s;
|
||||||
char *err_str;
|
|
||||||
struct stat filestat;
|
struct stat filestat;
|
||||||
WMScreen *scr = WMWidgetScreen(panel->win);
|
WMScreen *scr = WMWidgetScreen(panel->win);
|
||||||
|
|
||||||
file = getCurrentFileName(panel);
|
file = getCurrentFileName(panel);
|
||||||
|
|
||||||
while (s = strstr(file,"//")) {
|
while ((s = strstr(file,"//"))) {
|
||||||
int i;
|
int i;
|
||||||
for (i = 2;s[i] == '/';i++);
|
for (i = 2;s[i] == '/';i++);
|
||||||
strcpy(s, &s[i-1]);
|
strcpy(s, &s[i-1]);
|
||||||
@@ -835,7 +835,7 @@ goUnmount(WMButton *bPtr, WMFilePanel *panel)
|
|||||||
static void
|
static void
|
||||||
goFloppy(WMButton *bPtr, WMFilePanel *panel)
|
goFloppy(WMButton *bPtr, WMFilePanel *panel)
|
||||||
{
|
{
|
||||||
char *file, *err_str;
|
char *file;
|
||||||
struct stat filestat;
|
struct stat filestat;
|
||||||
WMScreen *scr = WMWidgetScreen(panel->win);
|
WMScreen *scr = WMWidgetScreen(panel->win);
|
||||||
|
|
||||||
|
|||||||
@@ -748,12 +748,13 @@ listFamilies(WMScreen *scr, WMFontPanel *panel)
|
|||||||
strcat(buffer, fam->encoding);
|
strcat(buffer, fam->encoding);
|
||||||
strcat(buffer, ")");
|
strcat(buffer, ")");
|
||||||
}
|
}
|
||||||
item = WMAddSortedListItem(panel->famLs, buffer);
|
item = WMAddListItem(panel->famLs, buffer);
|
||||||
|
|
||||||
item->clientData = fam;
|
item->clientData = fam;
|
||||||
}
|
}
|
||||||
WMFreeBag(bag);
|
WMFreeBag(bag);
|
||||||
}
|
}
|
||||||
|
WMSortListItems(panel->famLs);
|
||||||
|
|
||||||
WMFreeHashTable(families);
|
WMFreeHashTable(families);
|
||||||
}
|
}
|
||||||
|
|||||||
245
WINGs/wlist.c
245
WINGs/wlist.c
@@ -11,8 +11,7 @@ typedef struct W_List {
|
|||||||
W_Class widgetClass;
|
W_Class widgetClass;
|
||||||
W_View *view;
|
W_View *view;
|
||||||
|
|
||||||
WMListItem *items; /* array of items */
|
WMBag *items; /* list of WMListItem */
|
||||||
short itemCount;
|
|
||||||
|
|
||||||
short selectedItem;
|
short selectedItem;
|
||||||
|
|
||||||
@@ -108,6 +107,8 @@ WMCreateList(WMWidget *parent)
|
|||||||
|
|
||||||
lPtr->itemHeight = WMFontHeight(scrPtr->normalFont) + 1;
|
lPtr->itemHeight = WMFontHeight(scrPtr->normalFont) + 1;
|
||||||
|
|
||||||
|
lPtr->items = WMCreateBag(4);
|
||||||
|
|
||||||
/* create the vertical scroller */
|
/* create the vertical scroller */
|
||||||
lPtr->vScroller = WMCreateScroller(lPtr);
|
lPtr->vScroller = WMCreateScroller(lPtr);
|
||||||
WMMoveWidget(lPtr->vScroller, 1, 1);
|
WMMoveWidget(lPtr->vScroller, 1, 1);
|
||||||
@@ -126,60 +127,27 @@ WMCreateList(WMWidget *parent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
WMListItem*
|
comparator(const void *a, const void *b)
|
||||||
WMAddSortedListItem(WMList *lPtr, char *text)
|
|
||||||
{
|
{
|
||||||
WMListItem *item;
|
WMListItem *item1 = (WMListItem*)a;
|
||||||
WMListItem *tmp;
|
WMListItem *item2 = (WMListItem*)b;
|
||||||
int index;
|
|
||||||
|
|
||||||
item = wmalloc(sizeof(WMListItem));
|
if (strcmp(item1->text, item2->text) < 0)
|
||||||
memset(item, 0, sizeof(WMListItem));
|
return -1;
|
||||||
item->text = wstrdup(text);
|
else if (strcmp(item1->text, item2->text) > 0)
|
||||||
if (!lPtr->items) {
|
return 1;
|
||||||
lPtr->items = item;
|
else
|
||||||
index = 0;
|
return 0;
|
||||||
} else if (strcmp(lPtr->items->text, text) > 0) {
|
}
|
||||||
item->nextPtr = lPtr->items;
|
|
||||||
lPtr->items = item;
|
|
||||||
index = 1;
|
|
||||||
} else {
|
|
||||||
int added = 0;
|
|
||||||
|
|
||||||
index = 0;
|
|
||||||
tmp = lPtr->items;
|
|
||||||
while (tmp->nextPtr) {
|
|
||||||
if (strcmp(tmp->nextPtr->text, text) >= 0) {
|
|
||||||
item->nextPtr = tmp->nextPtr;
|
|
||||||
tmp->nextPtr = item;
|
|
||||||
added = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
index++;
|
|
||||||
tmp = tmp->nextPtr;
|
|
||||||
}
|
|
||||||
if (!added) {
|
|
||||||
tmp->nextPtr = item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (index < lPtr->fullFitLines+lPtr->flags.dontFitAll-lPtr->topItem) {
|
void
|
||||||
|
WMSortListItems(WMList *lPtr)
|
||||||
|
{
|
||||||
|
WMSortBag(lPtr->items, comparator);
|
||||||
|
|
||||||
paintList(lPtr);
|
paintList(lPtr);
|
||||||
}
|
|
||||||
|
|
||||||
lPtr->itemCount++;
|
|
||||||
|
|
||||||
if (lPtr->selectedItem >= index)
|
|
||||||
lPtr->selectedItem++;
|
|
||||||
|
|
||||||
/* update the scroller when idle, so that we don't waste time
|
|
||||||
* updating it when another item is going to be added later */
|
|
||||||
if (!lPtr->idleID) {
|
|
||||||
lPtr->idleID = WMAddIdleHandler((WMCallback*)updateScroller, lPtr);
|
|
||||||
}
|
|
||||||
|
|
||||||
return item;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -188,7 +156,6 @@ WMListItem*
|
|||||||
WMInsertListItem(WMList *lPtr, int row, char *text)
|
WMInsertListItem(WMList *lPtr, int row, char *text)
|
||||||
{
|
{
|
||||||
WMListItem *item;
|
WMListItem *item;
|
||||||
WMListItem *tmp = lPtr->items;
|
|
||||||
|
|
||||||
CHECK_CLASS(lPtr, WC_List);
|
CHECK_CLASS(lPtr, WC_List);
|
||||||
|
|
||||||
@@ -201,31 +168,15 @@ WMInsertListItem(WMList *lPtr, int row, char *text)
|
|||||||
&& row >= 0)
|
&& row >= 0)
|
||||||
lPtr->selectedItem++;
|
lPtr->selectedItem++;
|
||||||
|
|
||||||
if (lPtr->items==NULL) {
|
if (row < 0)
|
||||||
lPtr->items = item;
|
row = WMGetBagItemCount(lPtr->items);
|
||||||
} else if (row == 0) {
|
|
||||||
item->nextPtr = lPtr->items;
|
|
||||||
lPtr->items = item;
|
|
||||||
} else if (row < 0) {
|
|
||||||
while (tmp->nextPtr)
|
|
||||||
tmp = tmp->nextPtr;
|
|
||||||
|
|
||||||
tmp->nextPtr = item;
|
WMInsertInBag(lPtr->items, row, item);
|
||||||
row = lPtr->itemCount;
|
|
||||||
} else {
|
|
||||||
while (--row > 0)
|
|
||||||
tmp = tmp->nextPtr;
|
|
||||||
|
|
||||||
item->nextPtr = tmp->nextPtr;
|
|
||||||
tmp->nextPtr = item;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (row < lPtr->fullFitLines+lPtr->flags.dontFitAll-lPtr->topItem) {
|
if (row < lPtr->fullFitLines+lPtr->flags.dontFitAll-lPtr->topItem) {
|
||||||
paintList(lPtr);
|
paintList(lPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
lPtr->itemCount++;
|
|
||||||
|
|
||||||
/* update the scroller when idle, so that we don't waste time
|
/* update the scroller when idle, so that we don't waste time
|
||||||
* updating it when another item is going to be added later */
|
* updating it when another item is going to be added later */
|
||||||
if (!lPtr->idleID) {
|
if (!lPtr->idleID) {
|
||||||
@@ -239,14 +190,13 @@ WMInsertListItem(WMList *lPtr, int row, char *text)
|
|||||||
void
|
void
|
||||||
WMRemoveListItem(WMList *lPtr, int row)
|
WMRemoveListItem(WMList *lPtr, int row)
|
||||||
{
|
{
|
||||||
WMListItem *llist;
|
WMListItem *item;
|
||||||
WMListItem *tmp;
|
|
||||||
int topItem = lPtr->topItem;
|
int topItem = lPtr->topItem;
|
||||||
int selNotify = 0;
|
int selNotify = 0;
|
||||||
|
|
||||||
CHECK_CLASS(lPtr, WC_List);
|
CHECK_CLASS(lPtr, WC_List);
|
||||||
|
|
||||||
if (row < 0 || row >= lPtr->itemCount)
|
if (row < 0 || row >= WMGetBagItemCount(lPtr->items))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (lPtr->selectedItem == row) {
|
if (lPtr->selectedItem == row) {
|
||||||
@@ -261,28 +211,12 @@ WMRemoveListItem(WMList *lPtr, int row)
|
|||||||
if (lPtr->topItem < 0)
|
if (lPtr->topItem < 0)
|
||||||
lPtr->topItem = 0;
|
lPtr->topItem = 0;
|
||||||
|
|
||||||
if (row == 0) {
|
item = WMGetFromBag(lPtr->items, row);
|
||||||
if (lPtr->items->text)
|
if (item->text)
|
||||||
free(lPtr->items->text);
|
free(item->text);
|
||||||
|
free(item);
|
||||||
|
|
||||||
tmp = lPtr->items->nextPtr;
|
WMDeleteFromBag(lPtr->items, row);
|
||||||
free(lPtr->items);
|
|
||||||
|
|
||||||
lPtr->items = tmp;
|
|
||||||
} else {
|
|
||||||
llist = lPtr->items;
|
|
||||||
while (--row > 0)
|
|
||||||
llist = llist->nextPtr;
|
|
||||||
tmp = llist->nextPtr;
|
|
||||||
llist->nextPtr = llist->nextPtr->nextPtr;
|
|
||||||
|
|
||||||
if (tmp->text)
|
|
||||||
free(tmp->text);
|
|
||||||
|
|
||||||
free(tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
lPtr->itemCount--;
|
|
||||||
|
|
||||||
if (!lPtr->idleID) {
|
if (!lPtr->idleID) {
|
||||||
lPtr->idleID = WMAddIdleHandler((WMCallback*)updateScroller, lPtr);
|
lPtr->idleID = WMAddIdleHandler((WMCallback*)updateScroller, lPtr);
|
||||||
@@ -299,14 +233,14 @@ WMRemoveListItem(WMList *lPtr, int row)
|
|||||||
WMListItem*
|
WMListItem*
|
||||||
WMGetListItem(WMList *lPtr, int row)
|
WMGetListItem(WMList *lPtr, int row)
|
||||||
{
|
{
|
||||||
WMListItem *listPtr;
|
return WMGetFromBag(lPtr->items, row);
|
||||||
|
}
|
||||||
|
|
||||||
listPtr = lPtr->items;
|
|
||||||
|
|
||||||
while (row-- > 0)
|
WMBag*
|
||||||
listPtr = listPtr->nextPtr;
|
WMGetListItems(WMList *lPtr)
|
||||||
|
{
|
||||||
return listPtr;
|
return lPtr->items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -334,18 +268,17 @@ WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height)
|
|||||||
void
|
void
|
||||||
WMClearList(WMList *lPtr)
|
WMClearList(WMList *lPtr)
|
||||||
{
|
{
|
||||||
WMListItem *item, *tmp;
|
WMListItem *item;
|
||||||
int oldSelected = lPtr->selectedItem;
|
int oldSelected = lPtr->selectedItem;
|
||||||
|
int i;
|
||||||
|
|
||||||
item = lPtr->items;
|
for (i = 0; i < WMGetBagItemCount(lPtr->items); i++) {
|
||||||
while (item) {
|
item = WMGetFromBag(lPtr->items, i);
|
||||||
free(item->text);
|
free(item->text);
|
||||||
tmp = item->nextPtr;
|
|
||||||
free(item);
|
free(item);
|
||||||
item = tmp;
|
|
||||||
}
|
}
|
||||||
lPtr->items = NULL;
|
WMEmptyBag(lPtr->items);
|
||||||
lPtr->itemCount = 0;
|
|
||||||
lPtr->topItem = 0;
|
lPtr->topItem = 0;
|
||||||
lPtr->selectedItem = -1;
|
lPtr->selectedItem = -1;
|
||||||
|
|
||||||
@@ -381,17 +314,10 @@ WMSetListDoubleAction(WMList *lPtr, WMAction *action, void *clientData)
|
|||||||
WMListItem*
|
WMListItem*
|
||||||
WMGetListSelectedItem(WMList *lPtr)
|
WMGetListSelectedItem(WMList *lPtr)
|
||||||
{
|
{
|
||||||
int i = lPtr->selectedItem;
|
|
||||||
WMListItem *item;
|
|
||||||
|
|
||||||
if (lPtr->selectedItem < 0)
|
if (lPtr->selectedItem < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
item = lPtr->items;
|
return WMGetFromBag(lPtr->items, lPtr->selectedItem);
|
||||||
while (i-- > 0) {
|
|
||||||
item = item->nextPtr;
|
|
||||||
}
|
|
||||||
return item;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -413,8 +339,8 @@ void
|
|||||||
WMSetListPosition(WMList *lPtr, int row)
|
WMSetListPosition(WMList *lPtr, int row)
|
||||||
{
|
{
|
||||||
lPtr->topItem = row;
|
lPtr->topItem = row;
|
||||||
if (lPtr->topItem + lPtr->fullFitLines > lPtr->itemCount)
|
if (lPtr->topItem + lPtr->fullFitLines > WMGetBagItemCount(lPtr->items))
|
||||||
lPtr->topItem = lPtr->itemCount - lPtr->fullFitLines;
|
lPtr->topItem = WMGetBagItemCount(lPtr->items) - lPtr->fullFitLines;
|
||||||
|
|
||||||
if (lPtr->topItem < 0)
|
if (lPtr->topItem < 0)
|
||||||
lPtr->topItem = 0;
|
lPtr->topItem = 0;
|
||||||
@@ -427,7 +353,7 @@ WMSetListPosition(WMList *lPtr, int row)
|
|||||||
void
|
void
|
||||||
WMSetListBottomPosition(WMList *lPtr, int row)
|
WMSetListBottomPosition(WMList *lPtr, int row)
|
||||||
{
|
{
|
||||||
if (lPtr->itemCount > lPtr->fullFitLines) {
|
if (WMGetBagItemCount(lPtr->items) > lPtr->fullFitLines) {
|
||||||
lPtr->topItem = row - lPtr->fullFitLines;
|
lPtr->topItem = row - lPtr->fullFitLines;
|
||||||
if (lPtr->topItem < 0)
|
if (lPtr->topItem < 0)
|
||||||
lPtr->topItem = 0;
|
lPtr->topItem = 0;
|
||||||
@@ -440,7 +366,7 @@ WMSetListBottomPosition(WMList *lPtr, int row)
|
|||||||
int
|
int
|
||||||
WMGetListNumberOfRows(WMList *lPtr)
|
WMGetListNumberOfRows(WMList *lPtr)
|
||||||
{
|
{
|
||||||
return lPtr->itemCount;
|
return WMGetBagItemCount(lPtr->items);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -457,6 +383,7 @@ vScrollCallBack(WMWidget *scroller, void *self)
|
|||||||
WMScroller *sPtr = (WMScroller*)scroller;
|
WMScroller *sPtr = (WMScroller*)scroller;
|
||||||
int height;
|
int height;
|
||||||
int topItem = lPtr->topItem;
|
int topItem = lPtr->topItem;
|
||||||
|
int itemCount = WMGetBagItemCount(lPtr->items);
|
||||||
|
|
||||||
height = lPtr->view->size.height - 4;
|
height = lPtr->view->size.height - 4;
|
||||||
|
|
||||||
@@ -481,7 +408,7 @@ vScrollCallBack(WMWidget *scroller, void *self)
|
|||||||
|
|
||||||
|
|
||||||
case WSIncrementLine:
|
case WSIncrementLine:
|
||||||
if (lPtr->topItem + lPtr->fullFitLines < lPtr->itemCount) {
|
if (lPtr->topItem + lPtr->fullFitLines < itemCount) {
|
||||||
lPtr->topItem++;
|
lPtr->topItem++;
|
||||||
|
|
||||||
updateScroller(lPtr);
|
updateScroller(lPtr);
|
||||||
@@ -489,11 +416,11 @@ vScrollCallBack(WMWidget *scroller, void *self)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WSIncrementPage:
|
case WSIncrementPage:
|
||||||
if (lPtr->topItem + lPtr->fullFitLines < lPtr->itemCount) {
|
if (lPtr->topItem + lPtr->fullFitLines < itemCount) {
|
||||||
lPtr->topItem += lPtr->fullFitLines-(1-lPtr->flags.dontFitAll)-1;
|
lPtr->topItem += lPtr->fullFitLines-(1-lPtr->flags.dontFitAll)-1;
|
||||||
|
|
||||||
if (lPtr->topItem + lPtr->fullFitLines > lPtr->itemCount)
|
if (lPtr->topItem + lPtr->fullFitLines > itemCount)
|
||||||
lPtr->topItem = lPtr->itemCount - lPtr->fullFitLines;
|
lPtr->topItem = itemCount - lPtr->fullFitLines;
|
||||||
|
|
||||||
updateScroller(lPtr);
|
updateScroller(lPtr);
|
||||||
}
|
}
|
||||||
@@ -504,7 +431,7 @@ vScrollCallBack(WMWidget *scroller, void *self)
|
|||||||
int oldTopItem = lPtr->topItem;
|
int oldTopItem = lPtr->topItem;
|
||||||
|
|
||||||
lPtr->topItem = WMGetScrollerValue(lPtr->vScroller) *
|
lPtr->topItem = WMGetScrollerValue(lPtr->vScroller) *
|
||||||
(float)(lPtr->itemCount - lPtr->fullFitLines);
|
(float)(itemCount - lPtr->fullFitLines);
|
||||||
|
|
||||||
if (oldTopItem != lPtr->topItem)
|
if (oldTopItem != lPtr->topItem)
|
||||||
paintList(lPtr);
|
paintList(lPtr);
|
||||||
@@ -529,12 +456,10 @@ paintItem(List *lPtr, int index)
|
|||||||
W_Screen *scr = view->screen;
|
W_Screen *scr = view->screen;
|
||||||
int width, height, x, y;
|
int width, height, x, y;
|
||||||
WMListItem *itemPtr;
|
WMListItem *itemPtr;
|
||||||
int i;
|
|
||||||
|
|
||||||
i = index;
|
|
||||||
itemPtr = lPtr->items;
|
itemPtr = WMGetFromBag(lPtr->items, index);
|
||||||
while (i-- > 0)
|
|
||||||
itemPtr = itemPtr->nextPtr;
|
|
||||||
|
|
||||||
width = lPtr->view->size.width - 2 - 19;
|
width = lPtr->view->size.width - 2 - 19;
|
||||||
height = lPtr->itemHeight;
|
height = lPtr->itemHeight;
|
||||||
@@ -585,9 +510,11 @@ paintList(List *lPtr)
|
|||||||
if (!lPtr->view->flags.mapped)
|
if (!lPtr->view->flags.mapped)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (lPtr->itemCount>0) {
|
if (WMGetBagItemCount(lPtr->items) > 0) {
|
||||||
if (lPtr->topItem+lPtr->fullFitLines+lPtr->flags.dontFitAll > lPtr->itemCount) {
|
if (lPtr->topItem+lPtr->fullFitLines+lPtr->flags.dontFitAll
|
||||||
lim = lPtr->itemCount - lPtr->topItem;
|
> WMGetBagItemCount(lPtr->items)) {
|
||||||
|
|
||||||
|
lim = WMGetBagItemCount(lPtr->items) - lPtr->topItem;
|
||||||
XClearArea(scrPtr->display, lPtr->view->window, 19,
|
XClearArea(scrPtr->display, lPtr->view->window, 19,
|
||||||
2+lim*lPtr->itemHeight, lPtr->view->size.width-21,
|
2+lim*lPtr->itemHeight, lPtr->view->size.width-21,
|
||||||
lPtr->view->size.height-lim*lPtr->itemHeight-3, False);
|
lPtr->view->size.height-lim*lPtr->itemHeight-3, False);
|
||||||
@@ -616,6 +543,7 @@ static void
|
|||||||
updateScroller(List *lPtr)
|
updateScroller(List *lPtr)
|
||||||
{
|
{
|
||||||
float knobProportion, floatValue, tmp;
|
float knobProportion, floatValue, tmp;
|
||||||
|
int count = WMGetBagItemCount(lPtr->items);
|
||||||
|
|
||||||
if (lPtr->idleID)
|
if (lPtr->idleID)
|
||||||
WMDeleteIdleHandler(lPtr->idleID);
|
WMDeleteIdleHandler(lPtr->idleID);
|
||||||
@@ -623,13 +551,13 @@ updateScroller(List *lPtr)
|
|||||||
|
|
||||||
paintList(lPtr);
|
paintList(lPtr);
|
||||||
|
|
||||||
if (lPtr->itemCount == 0 || lPtr->itemCount <= lPtr->fullFitLines)
|
if (count == 0 || count <= lPtr->fullFitLines)
|
||||||
WMSetScrollerParameters(lPtr->vScroller, 0, 1);
|
WMSetScrollerParameters(lPtr->vScroller, 0, 1);
|
||||||
else {
|
else {
|
||||||
tmp = lPtr->fullFitLines;
|
tmp = lPtr->fullFitLines;
|
||||||
knobProportion = tmp/(float)lPtr->itemCount;
|
knobProportion = tmp/(float)count;
|
||||||
|
|
||||||
floatValue = (float)lPtr->topItem/(float)(lPtr->itemCount - lPtr->fullFitLines);
|
floatValue = (float)lPtr->topItem/(float)(count - lPtr->fullFitLines);
|
||||||
|
|
||||||
WMSetScrollerParameters(lPtr->vScroller, floatValue, knobProportion);
|
WMSetScrollerParameters(lPtr->vScroller, floatValue, knobProportion);
|
||||||
}
|
}
|
||||||
@@ -666,7 +594,8 @@ WMFindRowOfListItemWithTitle(WMList *lPtr, char *title)
|
|||||||
int i;
|
int i;
|
||||||
int ok = 0;
|
int ok = 0;
|
||||||
|
|
||||||
for (i=0, item=lPtr->items; item!=NULL; item=item->nextPtr, i++) {
|
for (i=0; i < WMGetBagItemCount(lPtr->items); i++) {
|
||||||
|
item = WMGetFromBag(lPtr->items, i);
|
||||||
if (strcmp(item->text, title)==0) {
|
if (strcmp(item->text, title)==0) {
|
||||||
ok = 1;
|
ok = 1;
|
||||||
break;
|
break;
|
||||||
@@ -681,9 +610,9 @@ void
|
|||||||
WMSelectListItem(WMList *lPtr, int row)
|
WMSelectListItem(WMList *lPtr, int row)
|
||||||
{
|
{
|
||||||
WMListItem *itemPtr;
|
WMListItem *itemPtr;
|
||||||
int i, notify = 0;
|
int notify = 0;
|
||||||
|
|
||||||
if (row >= lPtr->itemCount)
|
if (row >= WMGetBagItemCount(lPtr->items))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* the check below must be changed when the multiple selection is
|
/* the check below must be changed when the multiple selection is
|
||||||
@@ -697,15 +626,15 @@ WMSelectListItem(WMList *lPtr, int row)
|
|||||||
if (!lPtr->flags.allowMultipleSelection) {
|
if (!lPtr->flags.allowMultipleSelection) {
|
||||||
/* unselect previous selected item */
|
/* unselect previous selected item */
|
||||||
if (lPtr->selectedItem >= 0) {
|
if (lPtr->selectedItem >= 0) {
|
||||||
itemPtr = lPtr->items;
|
itemPtr = WMGetFromBag(lPtr->items, lPtr->selectedItem);
|
||||||
for (i=0; i<lPtr->selectedItem; i++)
|
|
||||||
itemPtr = itemPtr->nextPtr;
|
|
||||||
|
|
||||||
if (itemPtr->selected) {
|
if (itemPtr->selected) {
|
||||||
itemPtr->selected = 0;
|
itemPtr->selected = 0;
|
||||||
if (lPtr->view->flags.mapped && i>=lPtr->topItem
|
if (lPtr->view->flags.mapped
|
||||||
&& i<=lPtr->topItem+lPtr->fullFitLines)
|
&& lPtr->selectedItem>=lPtr->topItem
|
||||||
paintItem(lPtr, i);
|
&& lPtr->selectedItem<=lPtr->topItem+lPtr->fullFitLines) {
|
||||||
|
paintItem(lPtr, lPtr->selectedItem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -721,9 +650,8 @@ WMSelectListItem(WMList *lPtr, int row)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* select item */
|
/* select item */
|
||||||
itemPtr = lPtr->items;
|
itemPtr = WMGetFromBag(lPtr->items, row);
|
||||||
for (i=0; i<row; i++)
|
|
||||||
itemPtr = itemPtr->nextPtr;
|
|
||||||
if (lPtr->flags.allowMultipleSelection)
|
if (lPtr->flags.allowMultipleSelection)
|
||||||
itemPtr->selected = !itemPtr->selected;
|
itemPtr->selected = !itemPtr->selected;
|
||||||
else
|
else
|
||||||
@@ -752,7 +680,7 @@ getItemIndexAt(List *lPtr, int clickY)
|
|||||||
|
|
||||||
index = (clickY - 2) / lPtr->itemHeight + lPtr->topItem;
|
index = (clickY - 2) / lPtr->itemHeight + lPtr->topItem;
|
||||||
|
|
||||||
if (index < 0 || index >= lPtr->itemCount)
|
if (index < 0 || index >= WMGetBagItemCount(lPtr->items))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return index;
|
return index;
|
||||||
@@ -830,8 +758,8 @@ updateGeometry(WMList *lPtr)
|
|||||||
lPtr->flags.dontFitAll = 0;
|
lPtr->flags.dontFitAll = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lPtr->itemCount - lPtr->topItem <= lPtr->fullFitLines) {
|
if (WMGetBagItemCount(lPtr->items) - lPtr->topItem <= lPtr->fullFitLines) {
|
||||||
lPtr->topItem = lPtr->itemCount - lPtr->fullFitLines;
|
lPtr->topItem = WMGetBagItemCount(lPtr->items) - lPtr->fullFitLines;
|
||||||
if (lPtr->topItem < 0)
|
if (lPtr->topItem < 0)
|
||||||
lPtr->topItem = 0;
|
lPtr->topItem = 0;
|
||||||
}
|
}
|
||||||
@@ -854,20 +782,19 @@ didResizeList(W_ViewDelegate *self, WMView *view)
|
|||||||
static void
|
static void
|
||||||
destroyList(List *lPtr)
|
destroyList(List *lPtr)
|
||||||
{
|
{
|
||||||
WMListItem *itemPtr;
|
WMListItem *item;
|
||||||
|
int i;
|
||||||
|
|
||||||
if (lPtr->idleID)
|
if (lPtr->idleID)
|
||||||
WMDeleteIdleHandler(lPtr->idleID);
|
WMDeleteIdleHandler(lPtr->idleID);
|
||||||
lPtr->idleID = NULL;
|
lPtr->idleID = NULL;
|
||||||
|
|
||||||
while (lPtr->items!=NULL) {
|
for (i = 0; i < WMGetBagItemCount(lPtr->items); i++) {
|
||||||
itemPtr = lPtr->items;
|
item = WMGetFromBag(lPtr->items, i);
|
||||||
if (itemPtr->text)
|
free(item->text);
|
||||||
free(itemPtr->text);
|
free(item);
|
||||||
|
|
||||||
lPtr->items = itemPtr->nextPtr;
|
|
||||||
free(itemPtr);
|
|
||||||
}
|
}
|
||||||
|
WMFreeBag(lPtr->items);
|
||||||
|
|
||||||
free(lPtr);
|
free(lPtr);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,10 +51,9 @@ static void realizeObserver(void *self, WMNotification *not) {
|
|||||||
|
|
||||||
|
|
||||||
WMProgressIndicator*
|
WMProgressIndicator*
|
||||||
WMCreateProgressIndicator(WMWidget *parent)
|
WMCreateProgressIndicator(WMWidget *parent)
|
||||||
{
|
{
|
||||||
ProgressIndicator *pPtr;
|
ProgressIndicator *pPtr;
|
||||||
W_Screen *scrPtr = W_VIEW(parent)->screen;
|
|
||||||
|
|
||||||
pPtr = wmalloc(sizeof(ProgressIndicator));
|
pPtr = wmalloc(sizeof(ProgressIndicator));
|
||||||
memset(pPtr, 0, sizeof(ProgressIndicator));
|
memset(pPtr, 0, sizeof(ProgressIndicator));
|
||||||
|
|||||||
@@ -109,7 +109,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
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
|||||||
@@ -110,7 +110,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
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
|||||||
@@ -250,9 +250,10 @@ listPixmaps(WScreen *scr, WMList *lPtr, char *path)
|
|||||||
|
|
||||||
if (statb.st_mode & (S_IRUSR|S_IRGRP|S_IROTH)
|
if (statb.st_mode & (S_IRUSR|S_IRGRP|S_IROTH)
|
||||||
&& statb.st_mode & (S_IFREG|S_IFLNK)) {
|
&& statb.st_mode & (S_IFREG|S_IFLNK)) {
|
||||||
WMAddSortedListItem(lPtr, dentry->d_name);
|
WMAddListItem(lPtr, dentry->d_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
WMSortListItems(lPtr);
|
||||||
|
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
free(apath);
|
free(apath);
|
||||||
@@ -374,9 +375,10 @@ drawIconProc(WMList *lPtr, int index, Drawable d, char *text,
|
|||||||
blackcolor = WMBlackColor(wmscr);
|
blackcolor = WMBlackColor(wmscr);
|
||||||
whitecolor = WMWhiteColor(wmscr);
|
whitecolor = WMWhiteColor(wmscr);
|
||||||
|
|
||||||
dirfile = WMGetListSelectedItem(panel->dirList)->text;
|
dirfile = wexpandpath(WMGetListSelectedItem(panel->dirList)->text);
|
||||||
buffer = wmalloc(strlen(dirfile)+strlen(text)+4);
|
buffer = wmalloc(strlen(dirfile)+strlen(text)+4);
|
||||||
sprintf(buffer,"%s/%s" ,dirfile,text);
|
sprintf(buffer, "%s/%s", dirfile, text);
|
||||||
|
free(dirfile);
|
||||||
|
|
||||||
pixmap = WMCreatePixmapFromFile(WMWidgetScreen(panel->win), buffer);
|
pixmap = WMCreatePixmapFromFile(WMWidgetScreen(panel->win), buffer);
|
||||||
free(buffer);
|
free(buffer);
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ Makefile.in NEWS TODO alloca.c configure.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 = $(libwraster_la_SOURCES) $(testgrad_SOURCES) $(testdraw_SOURCES) $(view_SOURCES)
|
SOURCES = $(libwraster_la_SOURCES) $(testgrad_SOURCES) $(testdraw_SOURCES) $(view_SOURCES)
|
||||||
OBJECTS = $(libwraster_la_OBJECTS) $(testgrad_OBJECTS) $(testdraw_OBJECTS) $(view_OBJECTS)
|
OBJECTS = $(libwraster_la_OBJECTS) $(testgrad_OBJECTS) $(testdraw_OBJECTS) $(view_OBJECTS)
|
||||||
|
|||||||
Reference in New Issue
Block a user