mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +01:00
added patch with bugfixes for wings/textfield/panel exit with escape/bag etc
changed iconchooser to center icons/text updated po files
This commit is contained in:
@@ -2,6 +2,9 @@ changes since wmaker 0.61.0:
|
|||||||
............................
|
............................
|
||||||
|
|
||||||
- added WMGetTextFieldFont()
|
- added WMGetTextFieldFont()
|
||||||
|
- escape key in panels (craig nellist <crn@ozemail.com.au>)
|
||||||
|
- applied patch with fixes and enhancements to textfield
|
||||||
|
(Franck Wolff <wolff@cybercable.fr>)
|
||||||
|
|
||||||
|
|
||||||
changes since wmaker 0.60.0:
|
changes since wmaker 0.60.0:
|
||||||
|
|||||||
@@ -211,7 +211,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) $(testnot_SOURCES)
|
SOURCES = $(libWINGs_a_SOURCES) $(libWUtil_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES) $(testcolorpanel_SOURCES) $(testnot_SOURCES)
|
||||||
OBJECTS = $(libWINGs_a_OBJECTS) $(libWUtil_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS) $(testnot_OBJECTS)
|
OBJECTS = $(libWINGs_a_OBJECTS) $(libWUtil_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS) $(testnot_OBJECTS)
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ typedef enum {
|
|||||||
enum {
|
enum {
|
||||||
WMIllegalTextMovement,
|
WMIllegalTextMovement,
|
||||||
WMReturnTextMovement,
|
WMReturnTextMovement,
|
||||||
|
WMEscapeTextMovement,
|
||||||
WMTabTextMovement,
|
WMTabTextMovement,
|
||||||
WMBacktabTextMovement,
|
WMBacktabTextMovement,
|
||||||
WMLeftTextMovement,
|
WMLeftTextMovement,
|
||||||
@@ -350,6 +351,7 @@ typedef struct WMAlertPanel {
|
|||||||
short done;
|
short done;
|
||||||
|
|
||||||
KeyCode retKey;
|
KeyCode retKey;
|
||||||
|
KeyCode escKey;
|
||||||
} WMAlertPanel;
|
} WMAlertPanel;
|
||||||
|
|
||||||
|
|
||||||
@@ -364,6 +366,7 @@ typedef struct WMInputPanel {
|
|||||||
short done;
|
short done;
|
||||||
|
|
||||||
KeyCode retKey;
|
KeyCode retKey;
|
||||||
|
KeyCode escKey;
|
||||||
} WMInputPanel;
|
} WMInputPanel;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -355,7 +355,7 @@ typedef struct _WINGsConfiguration {
|
|||||||
unsigned doubleClickDelay;
|
unsigned doubleClickDelay;
|
||||||
} _WINGsConfiguration;
|
} _WINGsConfiguration;
|
||||||
|
|
||||||
_WINGsConfiguration WINGsConfiguration;
|
extern _WINGsConfiguration WINGsConfiguration;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -460,11 +460,6 @@ char *W_GetTextSelection(WMScreen *scr, Atom selection);
|
|||||||
|
|
||||||
void W_HandleSelectionEvent(XEvent *event);
|
void W_HandleSelectionEvent(XEvent *event);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* _WINGSP_H_ */
|
|
||||||
|
|
||||||
void W_FlushASAPNotificationQueue();
|
void W_FlushASAPNotificationQueue();
|
||||||
|
|
||||||
@@ -475,3 +470,9 @@ struct W_Balloon *W_CreateBalloon(WMScreen *scr);
|
|||||||
void W_BalloonHandleEnterView(WMView *view);
|
void W_BalloonHandleEnterView(WMView *view);
|
||||||
|
|
||||||
void W_BalloonHandleLeaveView(WMView *view);
|
void W_BalloonHandleLeaveView(WMView *view);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
#endif /* _WINGSP_H_ */
|
||||||
|
|||||||
@@ -49,9 +49,11 @@ WMAppendBag(WMBag *bag, WMBag *appendedBag)
|
|||||||
bag->items = wrealloc(bag->items,
|
bag->items = wrealloc(bag->items,
|
||||||
sizeof(void*) * (bag->size+appendedBag->count));
|
sizeof(void*) * (bag->size+appendedBag->count));
|
||||||
|
|
||||||
memcpy(bag->items + bag->count, appendedBag->items, appendedBag->count);
|
memcpy(bag->items + bag->count, appendedBag->items,
|
||||||
|
sizeof(void*) * appendedBag->count);
|
||||||
|
|
||||||
bag->count += appendedBag->count;
|
bag->count += appendedBag->count;
|
||||||
|
bag->size += appendedBag->count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern _WINGsConfiguration WINGsConfiguration;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -27,9 +27,17 @@ handleKeyPress(XEvent *event, void *clientData)
|
|||||||
{
|
{
|
||||||
WMAlertPanel *panel = (WMAlertPanel*)clientData;
|
WMAlertPanel *panel = (WMAlertPanel*)clientData;
|
||||||
|
|
||||||
if (event->xkey.keycode == panel->retKey) {
|
if (event->xkey.keycode == panel->retKey && panel->defBtn) {
|
||||||
WMPerformButtonClick(panel->defBtn);
|
WMPerformButtonClick(panel->defBtn);
|
||||||
}
|
}
|
||||||
|
if (event->xkey.keycode == panel->escKey) {
|
||||||
|
if (panel->altBtn || panel->othBtn) {
|
||||||
|
WMPerformButtonClick(panel->othBtn ? panel->othBtn : panel->altBtn);
|
||||||
|
} else {
|
||||||
|
panel->result = WAPRDefault;
|
||||||
|
panel->done=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -87,6 +95,7 @@ WMCreateAlertPanel(WMScreen *scrPtr, WMWindow *owner,
|
|||||||
|
|
||||||
|
|
||||||
panel->retKey = XKeysymToKeycode(scrPtr->display, XK_Return);
|
panel->retKey = XKeysymToKeycode(scrPtr->display, XK_Return);
|
||||||
|
panel->escKey = XKeysymToKeycode(scrPtr->display, XK_Escape);
|
||||||
|
|
||||||
if (owner)
|
if (owner)
|
||||||
panel->win = WMCreatePanelWithStyleForWindow(owner, "alertPanel",
|
panel->win = WMCreatePanelWithStyleForWindow(owner, "alertPanel",
|
||||||
@@ -231,9 +240,18 @@ handleKeyPress2(XEvent *event, void *clientData)
|
|||||||
{
|
{
|
||||||
WMInputPanel *panel = (WMInputPanel*)clientData;
|
WMInputPanel *panel = (WMInputPanel*)clientData;
|
||||||
|
|
||||||
if (event->xkey.keycode == panel->retKey) {
|
if (event->xkey.keycode == panel->retKey && panel->defBtn) {
|
||||||
WMPerformButtonClick(panel->defBtn);
|
WMPerformButtonClick(panel->defBtn);
|
||||||
}
|
}
|
||||||
|
if (event->xkey.keycode == panel->escKey) {
|
||||||
|
if (panel->altBtn) {
|
||||||
|
WMPerformButtonClick(panel->altBtn);
|
||||||
|
} else {
|
||||||
|
/* printf("got esc\n");*/
|
||||||
|
panel->done = 1;
|
||||||
|
panel->result = WAPRDefault;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -285,8 +303,21 @@ endedEditingObserver(void *observerData, WMNotification *notification)
|
|||||||
{
|
{
|
||||||
WMInputPanel *panel = (WMInputPanel*)observerData;
|
WMInputPanel *panel = (WMInputPanel*)observerData;
|
||||||
|
|
||||||
if ((int)WMGetNotificationClientData(notification) == WMReturnTextMovement) {
|
switch ((int)WMGetNotificationClientData(notification)) {
|
||||||
WMPerformButtonClick(panel->defBtn);
|
case WMReturnTextMovement:
|
||||||
|
if (panel->defBtn)
|
||||||
|
WMPerformButtonClick(panel->defBtn);
|
||||||
|
break;
|
||||||
|
case WMEscapeTextMovement:
|
||||||
|
if (panel->altBtn)
|
||||||
|
WMPerformButtonClick(panel->altBtn);
|
||||||
|
else {
|
||||||
|
panel->done = 1;
|
||||||
|
panel->result = WAPRDefault;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,6 +334,7 @@ WMCreateInputPanel(WMScreen *scrPtr, WMWindow *owner, char *title, char *msg,
|
|||||||
memset(panel, 0, sizeof(WMInputPanel));
|
memset(panel, 0, sizeof(WMInputPanel));
|
||||||
|
|
||||||
panel->retKey = XKeysymToKeycode(scrPtr->display, XK_Return);
|
panel->retKey = XKeysymToKeycode(scrPtr->display, XK_Return);
|
||||||
|
panel->escKey = XKeysymToKeycode(scrPtr->display, XK_Escape);
|
||||||
|
|
||||||
if (owner)
|
if (owner)
|
||||||
panel->win = WMCreatePanelWithStyleForWindow(owner, "inputPanel",
|
panel->win = WMCreatePanelWithStyleForWindow(owner, "inputPanel",
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ typedef struct W_TextField {
|
|||||||
short offsetWidth; /* offset of text from border */
|
short offsetWidth; /* offset of text from border */
|
||||||
|
|
||||||
WMRange selection;
|
WMRange selection;
|
||||||
WMRange prevselection;
|
|
||||||
|
|
||||||
WMFont *font;
|
WMFont *font;
|
||||||
|
|
||||||
@@ -124,6 +123,40 @@ struct W_ViewDelegate _TextFieldViewDelegate = {
|
|||||||
&((tPtr)->text[(start)]), (end) - (start) + 1))
|
&((tPtr)->text[(start)]), (end) - (start) + 1))
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
normalizeRange(TextField *tPtr, WMRange *range)
|
||||||
|
{
|
||||||
|
if (range->position < 0 && range->count < 0)
|
||||||
|
range->count = 0;
|
||||||
|
|
||||||
|
if (range->count == 0) {
|
||||||
|
range->position = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (1,-2) ~> (0,1) ; (1,-1) ~> (0,1) ; (2,-1) ~> (1,1) */
|
||||||
|
if (range->count < 0) { /* && range->position >= 0 */
|
||||||
|
if (range->position + range->count < 0) {
|
||||||
|
range->count = range->position;
|
||||||
|
range->position = 0;
|
||||||
|
} else {
|
||||||
|
range->count = -range->count;
|
||||||
|
range->position -= range->count;
|
||||||
|
}
|
||||||
|
/* (-2,1) ~> (0,0) ; (-1,1) ~> (0,0) ; (-1,2) ~> (0,1) */
|
||||||
|
} else if (range->position < 0) { /* && range->count > 0 */
|
||||||
|
if (range->position + range->count < 0) {
|
||||||
|
range->position = range->count = 0;
|
||||||
|
} else {
|
||||||
|
range->count += range->position;
|
||||||
|
range->position = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (range->position + range->count > tPtr->textLen)
|
||||||
|
range->count = tPtr->textLen - range->position;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
memmv(char *dest, char *src, int size)
|
memmv(char *dest, char *src, int size)
|
||||||
{
|
{
|
||||||
@@ -308,6 +341,8 @@ WMCreateTextField(WMWidget *parent)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldDelegate(WMTextField *tPtr, WMTextFieldDelegate *delegate)
|
WMSetTextFieldDelegate(WMTextField *tPtr, WMTextFieldDelegate *delegate)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
tPtr->delegate = delegate;
|
tPtr->delegate = delegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,35 +392,28 @@ WMInsertTextFieldText(WMTextField *tPtr, char *text, int position)
|
|||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range)
|
WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range)
|
||||||
{
|
{
|
||||||
CHECK_CLASS(tPtr, WC_TextField);
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
if (range.position >= tPtr->textLen)
|
normalizeRange(tPtr, &range);
|
||||||
return;
|
|
||||||
|
|
||||||
if (range.count < 1) {
|
if (!range.count)
|
||||||
if (range.position < 0)
|
return;
|
||||||
range.position = 0;
|
|
||||||
tPtr->text[range.position] = 0;
|
|
||||||
tPtr->textLen = range.position;
|
|
||||||
|
|
||||||
tPtr->cursorPosition = 0;
|
memmv(&(tPtr->text[range.position]), &(tPtr->text[range.position+range.count]),
|
||||||
tPtr->viewPosition = 0;
|
tPtr->textLen - (range.position+range.count) + 1);
|
||||||
} else {
|
|
||||||
if (range.position + range.count > tPtr->textLen)
|
|
||||||
range.count = tPtr->textLen - range.position;
|
|
||||||
memmv(&(tPtr->text[range.position]), &(tPtr->text[range.position+range.count]),
|
|
||||||
tPtr->textLen - (range.position+range.count) + 1);
|
|
||||||
tPtr->textLen -= range.count;
|
|
||||||
|
|
||||||
if (tPtr->cursorPosition > range.position)
|
tPtr->textLen -= range.count;
|
||||||
tPtr->cursorPosition -= range.count;
|
|
||||||
|
|
||||||
decrToFit(tPtr);
|
/* try to keep cursorPosition at the same place */
|
||||||
}
|
tPtr->viewPosition -= range.count;
|
||||||
|
if (tPtr->viewPosition < 0)
|
||||||
|
tPtr->viewPosition = 0;
|
||||||
|
tPtr->cursorPosition = range.position;
|
||||||
|
|
||||||
|
decrToFit(tPtr);
|
||||||
|
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
@@ -404,6 +432,8 @@ WMGetTextFieldText(WMTextField *tPtr)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldText(WMTextField *tPtr, char *text)
|
WMSetTextFieldText(WMTextField *tPtr, char *text)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
if ((text && strcmp(tPtr->text, text) == 0) ||
|
if ((text && strcmp(tPtr->text, text) == 0) ||
|
||||||
(!text && tPtr->textLen == 0))
|
(!text && tPtr->textLen == 0))
|
||||||
return;
|
return;
|
||||||
@@ -420,11 +450,8 @@ WMSetTextFieldText(WMTextField *tPtr, char *text)
|
|||||||
}
|
}
|
||||||
strcpy(tPtr->text, text);
|
strcpy(tPtr->text, text);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if (tPtr->textLen < tPtr->cursorPosition)
|
tPtr->cursorPosition = tPtr->selection.position = tPtr->textLen;
|
||||||
tPtr->cursorPosition = tPtr->textLen;
|
|
||||||
*/
|
|
||||||
tPtr->cursorPosition = tPtr->textLen;
|
|
||||||
tPtr->viewPosition = 0;
|
tPtr->viewPosition = 0;
|
||||||
tPtr->selection.count = 0;
|
tPtr->selection.count = 0;
|
||||||
|
|
||||||
@@ -436,7 +463,10 @@ WMSetTextFieldText(WMTextField *tPtr, char *text)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment)
|
WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
tPtr->flags.alignment = alignment;
|
tPtr->flags.alignment = alignment;
|
||||||
|
|
||||||
if (alignment!=WALeft) {
|
if (alignment!=WALeft) {
|
||||||
wwarning("only left alignment is supported in textfields");
|
wwarning("only left alignment is supported in textfields");
|
||||||
return;
|
return;
|
||||||
@@ -451,6 +481,8 @@ WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered)
|
WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
tPtr->flags.bordered = bordered;
|
tPtr->flags.bordered = bordered;
|
||||||
|
|
||||||
if (tPtr->view->flags.realized) {
|
if (tPtr->view->flags.realized) {
|
||||||
@@ -462,6 +494,8 @@ WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag)
|
WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
tPtr->flags.beveled = flag;
|
tPtr->flags.beveled = flag;
|
||||||
|
|
||||||
if (tPtr->view->flags.realized) {
|
if (tPtr->view->flags.realized) {
|
||||||
@@ -474,6 +508,8 @@ WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldSecure(WMTextField *tPtr, Bool flag)
|
WMSetTextFieldSecure(WMTextField *tPtr, Bool flag)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
tPtr->flags.secure = flag;
|
tPtr->flags.secure = flag;
|
||||||
|
|
||||||
if (tPtr->view->flags.realized) {
|
if (tPtr->view->flags.realized) {
|
||||||
@@ -485,6 +521,8 @@ WMSetTextFieldSecure(WMTextField *tPtr, Bool flag)
|
|||||||
Bool
|
Bool
|
||||||
WMGetTextFieldEditable(WMTextField *tPtr)
|
WMGetTextFieldEditable(WMTextField *tPtr)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
return tPtr->flags.enabled;
|
return tPtr->flags.enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -492,6 +530,8 @@ WMGetTextFieldEditable(WMTextField *tPtr)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldEditable(WMTextField *tPtr, Bool flag)
|
WMSetTextFieldEditable(WMTextField *tPtr, Bool flag)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
tPtr->flags.enabled = flag;
|
tPtr->flags.enabled = flag;
|
||||||
|
|
||||||
if (tPtr->view->flags.realized) {
|
if (tPtr->view->flags.realized) {
|
||||||
@@ -503,20 +543,10 @@ WMSetTextFieldEditable(WMTextField *tPtr, Bool flag)
|
|||||||
void
|
void
|
||||||
WMSelectTextFieldRange(WMTextField *tPtr, WMRange range)
|
WMSelectTextFieldRange(WMTextField *tPtr, WMRange range)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
if (tPtr->flags.enabled) {
|
if (tPtr->flags.enabled) {
|
||||||
if (range.position < 0) {
|
normalizeRange(tPtr, &range);
|
||||||
range.count += range.position;
|
|
||||||
range.count = (range.count < 0) ? 0 : range.count;
|
|
||||||
range.position = 0;
|
|
||||||
} else if (range.position > tPtr->textLen) {
|
|
||||||
range.position = tPtr->textLen;
|
|
||||||
range.count = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (range.position + range.count > tPtr->textLen)
|
|
||||||
range.count = tPtr->textLen - range.position;
|
|
||||||
|
|
||||||
tPtr->prevselection = tPtr->selection; /* check if this is needed */
|
|
||||||
|
|
||||||
tPtr->selection = range;
|
tPtr->selection = range;
|
||||||
|
|
||||||
@@ -530,6 +560,8 @@ WMSelectTextFieldRange(WMTextField *tPtr, WMRange range)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position)
|
WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
if (tPtr->flags.enabled) {
|
if (tPtr->flags.enabled) {
|
||||||
if (position > tPtr->textLen)
|
if (position > tPtr->textLen)
|
||||||
position = tPtr->textLen;
|
position = tPtr->textLen;
|
||||||
@@ -591,6 +623,8 @@ WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev)
|
|||||||
void
|
void
|
||||||
WMSetTextFieldFont(WMTextField *tPtr, WMFont *font)
|
WMSetTextFieldFont(WMTextField *tPtr, WMFont *font)
|
||||||
{
|
{
|
||||||
|
CHECK_CLASS(tPtr, WC_TextField);
|
||||||
|
|
||||||
if (tPtr->font)
|
if (tPtr->font)
|
||||||
WMReleaseFont(tPtr->font);
|
WMReleaseFont(tPtr->font);
|
||||||
tPtr->font = WMRetainFont(font);
|
tPtr->font = WMRetainFont(font);
|
||||||
@@ -604,6 +638,7 @@ WMSetTextFieldFont(WMTextField *tPtr, WMFont *font)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WMFont*
|
WMFont*
|
||||||
WMGetTextFieldFont(WMTextField *tPtr)
|
WMGetTextFieldFont(WMTextField *tPtr)
|
||||||
{
|
{
|
||||||
@@ -611,7 +646,6 @@ WMGetTextFieldFont(WMTextField *tPtr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
didResizeTextField(W_ViewDelegate *self, WMView *view)
|
didResizeTextField(W_ViewDelegate *self, WMView *view)
|
||||||
{
|
{
|
||||||
@@ -941,22 +975,15 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
KeySym ksym;
|
KeySym ksym;
|
||||||
int count, refresh = 0;
|
int count, refresh = 0;
|
||||||
int control_pressed = 0;
|
int control_pressed = 0;
|
||||||
|
int cancelSelection = 1;
|
||||||
|
|
||||||
if (((XKeyEvent *) event)->state & WM_EMACSKEYMASK) {
|
/*printf("(%d,%d) -> ", tPtr->selection.position, tPtr->selection.count);*/
|
||||||
|
if (((XKeyEvent *) event)->state & WM_EMACSKEYMASK)
|
||||||
control_pressed = 1;
|
control_pressed = 1;
|
||||||
}
|
|
||||||
|
|
||||||
count = XLookupString(&event->xkey, buffer, 63, &ksym, NULL);
|
count = XLookupString(&event->xkey, buffer, 63, &ksym, NULL);
|
||||||
buffer[count] = '\0';
|
buffer[count] = '\0';
|
||||||
|
|
||||||
if (!(event->xkey.state & ShiftMask)) {
|
|
||||||
if (tPtr->selection.count)
|
|
||||||
refresh = 1;
|
|
||||||
tPtr->prevselection = tPtr->selection;
|
|
||||||
tPtr->selection.position = tPtr->cursorPosition;
|
|
||||||
tPtr->selection.count = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Be careful in any case in this switch statement, never to call
|
/* Be careful in any case in this switch statement, never to call
|
||||||
* to more than a function that can generate text change notifications.
|
* to more than a function that can generate text change notifications.
|
||||||
* Only one text change notification should be sent in any case.
|
* Only one text change notification should be sent in any case.
|
||||||
@@ -1005,22 +1032,23 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
if (tPtr->cursorPosition > 0) {
|
if (tPtr->cursorPosition > 0) {
|
||||||
paintCursor(tPtr);
|
paintCursor(tPtr);
|
||||||
if (event->xkey.state & ControlMask) {
|
if (event->xkey.state & ControlMask) {
|
||||||
int i;
|
int i = tPtr->cursorPosition - 1;
|
||||||
for (i = tPtr->cursorPosition - 1; i >= 0; i--)
|
|
||||||
if (tPtr->text[i] == ' ' || i == 0) {
|
while (i > 0 && tPtr->text[i] != ' ') i--;
|
||||||
tPtr->cursorPosition = i;
|
while (i > 0 && tPtr->text[i] == ' ') i--;
|
||||||
break;
|
|
||||||
}
|
tPtr->cursorPosition = (i > 0) ? i + 1 : 0;
|
||||||
} else {
|
} else
|
||||||
tPtr->cursorPosition--;
|
tPtr->cursorPosition--;
|
||||||
}
|
|
||||||
if (tPtr->cursorPosition < tPtr->viewPosition) {
|
if (tPtr->cursorPosition < tPtr->viewPosition) {
|
||||||
tPtr->viewPosition = tPtr->cursorPosition;
|
tPtr->viewPosition = tPtr->cursorPosition;
|
||||||
refresh = 1;
|
refresh = 1;
|
||||||
} else {
|
} else
|
||||||
paintCursor(tPtr);
|
paintCursor(tPtr);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (event->xkey.state & ShiftMask)
|
||||||
|
cancelSelection = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_EMACSKEY_RIGHT:
|
case WM_EMACSKEY_RIGHT:
|
||||||
@@ -1034,12 +1062,12 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
if (tPtr->cursorPosition < tPtr->textLen) {
|
if (tPtr->cursorPosition < tPtr->textLen) {
|
||||||
paintCursor(tPtr);
|
paintCursor(tPtr);
|
||||||
if (event->xkey.state & ControlMask) {
|
if (event->xkey.state & ControlMask) {
|
||||||
int i;
|
int i = tPtr->cursorPosition;
|
||||||
for (i = tPtr->cursorPosition + 1; i <= tPtr->textLen; i++)
|
|
||||||
if (tPtr->text[i] == ' ' || i == tPtr->textLen) {
|
while (tPtr->text[i] && tPtr->text[i] != ' ') i++;
|
||||||
tPtr->cursorPosition = i;
|
while (tPtr->text[i] == ' ') i++;
|
||||||
break;
|
|
||||||
}
|
tPtr->cursorPosition = i;
|
||||||
} else {
|
} else {
|
||||||
tPtr->cursorPosition++;
|
tPtr->cursorPosition++;
|
||||||
}
|
}
|
||||||
@@ -1053,6 +1081,8 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
if (!refresh)
|
if (!refresh)
|
||||||
paintCursor(tPtr);
|
paintCursor(tPtr);
|
||||||
}
|
}
|
||||||
|
if (event->xkey.state & ShiftMask)
|
||||||
|
cancelSelection = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_EMACSKEY_HOME:
|
case WM_EMACSKEY_HOME:
|
||||||
@@ -1069,10 +1099,11 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
if (tPtr->viewPosition > 0) {
|
if (tPtr->viewPosition > 0) {
|
||||||
tPtr->viewPosition = 0;
|
tPtr->viewPosition = 0;
|
||||||
refresh = 1;
|
refresh = 1;
|
||||||
} else {
|
} else
|
||||||
paintCursor(tPtr);
|
paintCursor(tPtr);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (event->xkey.state & ShiftMask)
|
||||||
|
cancelSelection = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_EMACSKEY_END:
|
case WM_EMACSKEY_END:
|
||||||
@@ -1097,6 +1128,8 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
if (!refresh)
|
if (!refresh)
|
||||||
paintCursor(tPtr);
|
paintCursor(tPtr);
|
||||||
}
|
}
|
||||||
|
if (event->xkey.state & ShiftMask)
|
||||||
|
cancelSelection = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_EMACSKEY_BS:
|
case WM_EMACSKEY_BS:
|
||||||
@@ -1104,19 +1137,14 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
goto normal_key;
|
goto normal_key;
|
||||||
}
|
}
|
||||||
case XK_BackSpace:
|
case XK_BackSpace:
|
||||||
if (tPtr->cursorPosition > 0) {
|
if (tPtr->selection.count) {
|
||||||
|
WMDeleteTextFieldRange(tPtr, tPtr->selection);
|
||||||
|
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
||||||
|
(void*)WMDeleteTextEvent);
|
||||||
|
} else if (tPtr->cursorPosition > 0) {
|
||||||
WMRange range;
|
WMRange range;
|
||||||
|
range.position = tPtr->cursorPosition - 1;
|
||||||
if (tPtr->prevselection.count) {
|
range.count = 1;
|
||||||
range.position = tPtr->prevselection.count < 0
|
|
||||||
? tPtr->prevselection.position + tPtr->prevselection.count
|
|
||||||
: tPtr->prevselection.position;
|
|
||||||
|
|
||||||
range.count = abs(tPtr->prevselection.count);
|
|
||||||
} else {
|
|
||||||
range.position = tPtr->cursorPosition - 1;
|
|
||||||
range.count = 1;
|
|
||||||
}
|
|
||||||
WMDeleteTextFieldRange(tPtr, range);
|
WMDeleteTextFieldRange(tPtr, range);
|
||||||
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
||||||
(void*)WMDeleteTextEvent);
|
(void*)WMDeleteTextEvent);
|
||||||
@@ -1131,19 +1159,14 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
case XK_KP_Delete:
|
case XK_KP_Delete:
|
||||||
#endif
|
#endif
|
||||||
case XK_Delete:
|
case XK_Delete:
|
||||||
if (tPtr->cursorPosition < tPtr->textLen || tPtr->prevselection.count) {
|
if (tPtr->selection.count) {
|
||||||
|
WMDeleteTextFieldRange(tPtr, tPtr->selection);
|
||||||
|
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
||||||
|
(void*)WMDeleteTextEvent);
|
||||||
|
} else if (tPtr->cursorPosition < tPtr->textLen) {
|
||||||
WMRange range;
|
WMRange range;
|
||||||
|
range.position = tPtr->cursorPosition;
|
||||||
if (tPtr->prevselection.count) {
|
range.count = 1;
|
||||||
range.position = tPtr->prevselection.count < 0
|
|
||||||
? tPtr->prevselection.position + tPtr->prevselection.count
|
|
||||||
: tPtr->prevselection.position;
|
|
||||||
|
|
||||||
range.count = abs(tPtr->prevselection.count);
|
|
||||||
} else {
|
|
||||||
range.position = tPtr->cursorPosition;
|
|
||||||
range.count = 1;
|
|
||||||
}
|
|
||||||
WMDeleteTextFieldRange(tPtr, range);
|
WMDeleteTextFieldRange(tPtr, range);
|
||||||
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
||||||
(void*)WMDeleteTextEvent);
|
(void*)WMDeleteTextEvent);
|
||||||
@@ -1153,38 +1176,43 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
normal_key:
|
normal_key:
|
||||||
default:
|
default:
|
||||||
if (count > 0 && !iscntrl(buffer[0])) {
|
if (count > 0 && !iscntrl(buffer[0])) {
|
||||||
WMRange range;
|
if (tPtr->selection.count)
|
||||||
|
WMDeleteTextFieldRange(tPtr, tPtr->selection);
|
||||||
if (tPtr->prevselection.count) {
|
|
||||||
range.position = tPtr->prevselection.count < 0
|
|
||||||
? tPtr->prevselection.position + tPtr->prevselection.count
|
|
||||||
: tPtr->prevselection.position;
|
|
||||||
|
|
||||||
range.count = abs(tPtr->prevselection.count);
|
|
||||||
} else {
|
|
||||||
range.position = tPtr->cursorPosition;
|
|
||||||
range.count = 1;
|
|
||||||
}
|
|
||||||
if (tPtr->prevselection.count)
|
|
||||||
WMDeleteTextFieldRange(tPtr, range);
|
|
||||||
WMInsertTextFieldText(tPtr, buffer, tPtr->cursorPosition);
|
WMInsertTextFieldText(tPtr, buffer, tPtr->cursorPosition);
|
||||||
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
||||||
(void*)WMInsertTextEvent);
|
(void*)WMInsertTextEvent);
|
||||||
} else {
|
} else
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (event->xkey.state & ShiftMask) {
|
|
||||||
if (tPtr->selection.count == 0)
|
if (!cancelSelection) {
|
||||||
tPtr->selection.position = tPtr->cursorPosition;
|
if (tPtr->selection.count != tPtr->cursorPosition - tPtr->selection.position) {
|
||||||
tPtr->selection.count = tPtr->cursorPosition - tPtr->selection.position;
|
WMNotification *notif;
|
||||||
refresh = 1;
|
|
||||||
|
tPtr->selection.count = tPtr->cursorPosition - tPtr->selection.position;
|
||||||
|
|
||||||
|
XSetSelectionOwner(tPtr->view->screen->display,
|
||||||
|
XA_PRIMARY, tPtr->view->window,
|
||||||
|
event->xbutton.time);
|
||||||
|
notif = WMCreateNotification("_lostOwnership", NULL,tPtr);
|
||||||
|
WMPostNotification(notif);
|
||||||
|
WMReleaseNotification(notif);
|
||||||
|
|
||||||
|
refresh = 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (tPtr->selection.count) {
|
||||||
|
tPtr->selection.count = 0;
|
||||||
|
refresh = 1;
|
||||||
|
}
|
||||||
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
}
|
}
|
||||||
tPtr->prevselection.count = 0;
|
|
||||||
if (refresh) {
|
if (refresh)
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
|
||||||
|
/*printf("(%d,%d)\n", tPtr->selection.position, tPtr->selection.count);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1222,7 +1250,8 @@ static void
|
|||||||
handleTextFieldActionEvents(XEvent *event, void *data)
|
handleTextFieldActionEvents(XEvent *event, void *data)
|
||||||
{
|
{
|
||||||
TextField *tPtr = (TextField*)data;
|
TextField *tPtr = (TextField*)data;
|
||||||
static int move;
|
static int move = 0;
|
||||||
|
static Time lastButtonReleasedEvent = 0;
|
||||||
|
|
||||||
CHECK_CLASS(data, WC_TextField);
|
CHECK_CLASS(data, WC_TextField);
|
||||||
|
|
||||||
@@ -1262,14 +1291,15 @@ handleTextFieldActionEvents(XEvent *event, void *data)
|
|||||||
tPtr->viewPosition--;
|
tPtr->viewPosition--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tPtr->selection.count) {
|
/*if (!tPtr->selection.count) {
|
||||||
tPtr->selection.position = tPtr->cursorPosition;
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
tPtr->cursorPosition =
|
tPtr->cursorPosition =
|
||||||
pointToCursorPosition(tPtr, event->xmotion.x);
|
pointToCursorPosition(tPtr, event->xmotion.x);
|
||||||
|
|
||||||
tPtr->selection.count = tPtr->cursorPosition - tPtr->selection.position;
|
tPtr->selection.count = tPtr->cursorPosition - tPtr->selection.position;
|
||||||
|
/*printf("(%d,%d)\n", tPtr->selection.position, tPtr->selection.count);*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
printf("notify %d %d\n",event->xmotion.x,tPtr->usableWidth);
|
printf("notify %d %d\n",event->xmotion.x,tPtr->usableWidth);
|
||||||
@@ -1306,6 +1336,7 @@ handleTextFieldActionEvents(XEvent *event, void *data)
|
|||||||
if (tPtr->flags.enabled && !tPtr->flags.focused) {
|
if (tPtr->flags.enabled && !tPtr->flags.focused) {
|
||||||
WMSetFocusToWidget(tPtr);
|
WMSetFocusToWidget(tPtr);
|
||||||
} else if (tPtr->flags.focused) {
|
} else if (tPtr->flags.focused) {
|
||||||
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
tPtr->selection.count = 0;
|
tPtr->selection.count = 0;
|
||||||
}
|
}
|
||||||
if(textWidth < tPtr->usableWidth){
|
if(textWidth < tPtr->usableWidth){
|
||||||
@@ -1336,6 +1367,7 @@ handleTextFieldActionEvents(XEvent *event, void *data)
|
|||||||
} else if (tPtr->flags.focused) {
|
} else if (tPtr->flags.focused) {
|
||||||
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
||||||
event->xbutton.x);
|
event->xbutton.x);
|
||||||
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
tPtr->selection.count = 0;
|
tPtr->selection.count = 0;
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
@@ -1345,7 +1377,7 @@ handleTextFieldActionEvents(XEvent *event, void *data)
|
|||||||
text = W_GetTextSelection(tPtr->view->screen, XA_PRIMARY);
|
text = W_GetTextSelection(tPtr->view->screen, XA_PRIMARY);
|
||||||
|
|
||||||
if (!text) {
|
if (!text) {
|
||||||
text = W_GetTextSelection(tPtr->view->screen,
|
text = W_GetTextSelection(tPtr->view->screen,
|
||||||
tPtr->view->screen->clipboardAtom);
|
tPtr->view->screen->clipboardAtom);
|
||||||
}
|
}
|
||||||
if (!text) {
|
if (!text) {
|
||||||
@@ -1363,13 +1395,30 @@ handleTextFieldActionEvents(XEvent *event, void *data)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ButtonRelease:
|
case ButtonRelease:
|
||||||
if (tPtr->flags.pointerGrabbed) {
|
if (tPtr->flags.pointerGrabbed) {
|
||||||
tPtr->flags.pointerGrabbed = 0;
|
tPtr->flags.pointerGrabbed = 0;
|
||||||
XUngrabPointer(WMScreenDisplay(W_VIEW(tPtr)->screen), CurrentTime);
|
XUngrabPointer(WMScreenDisplay(W_VIEW(tPtr)->screen), CurrentTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
move = 0;
|
||||||
|
|
||||||
|
if (event->xbutton.time - lastButtonReleasedEvent
|
||||||
|
<= WINGsConfiguration.doubleClickDelay) {
|
||||||
|
tPtr->selection.position = 0;
|
||||||
|
tPtr->selection.count = tPtr->textLen;
|
||||||
|
paintTextField(tPtr);
|
||||||
|
XSetSelectionOwner(tPtr->view->screen->display,
|
||||||
|
XA_PRIMARY, tPtr->view->window, event->xbutton.time);
|
||||||
|
{
|
||||||
|
WMNotification *notif = WMCreateNotification("_lostOwnership",
|
||||||
|
NULL,tPtr);
|
||||||
|
WMPostNotification(notif);
|
||||||
|
WMReleaseNotification(notif);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastButtonReleasedEvent = event->xbutton.time;
|
||||||
|
|
||||||
move = 0;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -441,7 +441,7 @@ msgstr ""
|
|||||||
"\"Gimmicks\" und Animationen ein-/ausschalten. Z.B.\n"
|
"\"Gimmicks\" und Animationen ein-/ausschalten. Z.B.\n"
|
||||||
"das \"Ghosting\" einen bewegten Docks wenn es aus die\n"
|
"das \"Ghosting\" einen bewegten Docks wenn es aus die\n"
|
||||||
"andere Seite gezogen wird und die \"Explosion\" für\n"
|
"andere Seite gezogen wird und die \"Explosion\" für\n"
|
||||||
"aus dem Dock genommene Icons.\n"
|
"aus dem Dock genommene Icons."
|
||||||
|
|
||||||
#: ../../WPrefs.app/Configurations.c:396
|
#: ../../WPrefs.app/Configurations.c:396
|
||||||
msgid "Sounds"
|
msgid "Sounds"
|
||||||
@@ -504,7 +504,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Animationsgeschwindigkeit, Titelzeilen-Stil, diverse\n"
|
"Animationsgeschwindigkeit, Titelzeilen-Stil, diverse\n"
|
||||||
"Optionen und für Window Maker reservierte Farbtiefe\n"
|
"Optionen und für Window Maker reservierte Farbtiefe\n"
|
||||||
"bei 8bit-Displays\n"
|
"bei 8bit-Displays"
|
||||||
|
|
||||||
#: ../../WPrefs.app/Expert.c:74
|
#: ../../WPrefs.app/Expert.c:74
|
||||||
msgid "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME."
|
msgid "Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME."
|
||||||
@@ -1184,7 +1184,7 @@ msgstr "konnte tempor
|
|||||||
|
|
||||||
#: ../../WPrefs.app/MouseSettings.c:843
|
#: ../../WPrefs.app/MouseSettings.c:843
|
||||||
msgid "could not rename file %s to %s\n"
|
msgid "could not rename file %s to %s\n"
|
||||||
msgstr "konnte Datei %s nicht in Datei %s umbenennen"
|
msgstr "konnte Datei %s nicht in Datei %s umbenennen\n"
|
||||||
|
|
||||||
#: ../../WPrefs.app/MouseSettings.c:927
|
#: ../../WPrefs.app/MouseSettings.c:927
|
||||||
msgid "Mouse Preferences"
|
msgid "Mouse Preferences"
|
||||||
@@ -1531,7 +1531,7 @@ msgid ""
|
|||||||
"frame should be displayed.\n"
|
"frame should be displayed.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ob die Fenster mit Inhalt verschoben werden\n"
|
"Ob die Fenster mit Inhalt verschoben werden\n"
|
||||||
"oder nur ein Rahmen angezeigt werden soll."
|
"oder nur ein Rahmen angezeigt werden soll.\n"
|
||||||
|
|
||||||
#: ../../WPrefs.app/WindowHandling.c:341
|
#: ../../WPrefs.app/WindowHandling.c:341
|
||||||
msgid "When maximizing..."
|
msgid "When maximizing..."
|
||||||
|
|||||||
@@ -826,7 +826,7 @@ msgid ""
|
|||||||
"Always open submenus inside the screen, instead of scrolling.\n"
|
"Always open submenus inside the screen, instead of scrolling.\n"
|
||||||
"Note: this can be an annoyance at some circumstances.\n"
|
"Note: this can be an annoyance at some circumstances.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"÷ÓÅÇÄÁ ÏÔËÒÙ×ÁÔØ ÐÏÄÍÅÎÀ ×ÎÕÔÒÉ ÜËÒÁÎÁ, ×ÍÅÓÔÏ ÐÒÏËÒÕÔËÉ."
|
"÷ÓÅÇÄÁ ÏÔËÒÙ×ÁÔØ ÐÏÄÍÅÎÀ ×ÎÕÔÒÉ ÜËÒÁÎÁ, ×ÍÅÓÔÏ ÐÒÏËÒÕÔËÉ.\n"
|
||||||
|
|
||||||
#: ../../WPrefs.app/MenuPreferences.c:209
|
#: ../../WPrefs.app/MenuPreferences.c:209
|
||||||
msgid "Scroll off-screen menus when pointer is moved over them."
|
msgid "Scroll off-screen menus when pointer is moved over them."
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ CLEANFILES = Default.iconset
|
|||||||
Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes
|
Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes
|
||||||
-rm -f Default.iconset
|
-rm -f Default.iconset
|
||||||
echo '{' > Default.iconset
|
echo '{' > Default.iconset
|
||||||
grep Icon $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes >> Default.iconset
|
grep Icon $(top_builddir)/WindowMaker/Defaults/WMWindowAttributes >> Default.iconset
|
||||||
echo '}' >> Default.iconset
|
echo '}' >> Default.iconset
|
||||||
chmod 644 Default.iconset
|
chmod 644 Default.iconset
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ prefsdata_DATA =\
|
|||||||
menu.ko\
|
menu.ko\
|
||||||
menu.nl\
|
menu.nl\
|
||||||
menu.no\
|
menu.no\
|
||||||
|
menu.pl\
|
||||||
menu.pt\
|
menu.pt\
|
||||||
menu.ru\
|
menu.ru\
|
||||||
menu.se\
|
menu.se\
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Το Root μενού του WindowMaker
|
* Το Μητρικό μενού του Window Maker
|
||||||
*
|
*
|
||||||
* Η σύνταξη είναι:
|
* Η σύνταξη είναι:
|
||||||
*
|
*
|
||||||
@@ -16,72 +16,79 @@
|
|||||||
* Δεν μπορεί να δηλωθεί ένα shortcut για MENU και για OPEN_MENU εντολή.
|
* Δεν μπορεί να δηλωθεί ένα shortcut για MENU και για OPEN_MENU εντολή.
|
||||||
*
|
*
|
||||||
* <Command> μία από τις εντολές:
|
* <Command> μία από τις εντολές:
|
||||||
* MENU - το σημείο που ξεκινά ένα (υπο)μενού
|
* MENU - το σημείο που ξεκινά ένα υπομενού
|
||||||
* END - το σημείο που τελειώνει ένα (υπο)μενού
|
* END - το σημείο που τελειώνει ένα υπομενού
|
||||||
* OPEN_MENU - ανοίγει ένα μενού από ένα αρχείο, pipe ή τα περιεχόμενα ενός
|
* OPEN_MENU - ανοίγει ένα μενού από ένα αρχείο, pipe ή τα περιεχόμενα ενός
|
||||||
* καταλόγου(ων) και αντιστοιχεί μια εντολή στο καθένα.
|
* καταλόγου(ων) και αντιστοιχεί μια εντολή στο καθένα.
|
||||||
* WORKSPACE_MENU - προσθέτει ένα υπομενού για τη διαχείρηση των Επιφανειών.
|
* WORKSPACE_MENU - προσθέτει το υπομενού για τη διαχείρηση των Επιφανειών.
|
||||||
* Μόνο ένα workspace_menu επιτρέπεται.
|
* Μόνο ένα workspace_menu επιτρέπεται.
|
||||||
* EXEC <program> - εκτέλεση προγράμματος
|
* EXEC <program> - εκτέλεση προγράμματος
|
||||||
* EXIT - έξοδος από τον window manager
|
* SHEXEC <command> - εκτέλεση εντολής κέλυφους (όπως gimp > /dev/null)
|
||||||
* RESTART [<window manager>] - επανεκκινεί τον Window Maker ή ξεκινάει ένας
|
* EXIT - έξοδος από τον Διαχειριστή Παραθύρων
|
||||||
* άλλος window manager
|
* RESTART [<window manager>] - επανεκκινεί τον Window Maker ή ξεκινάει
|
||||||
|
* ένας άλλος window manager
|
||||||
* REFRESH - ανανεώνει την προβολή της Επιφάνειας στην οθόνη
|
* REFRESH - ανανεώνει την προβολή της Επιφάνειας στην οθόνη
|
||||||
* ARRANGE_ICONS - τακτοποίηση των εικονιδίων στην Επιφάνεια
|
* ARRANGE_ICONS - τακτοποίηση των εικονιδίων στην Επιφάνεια
|
||||||
* SHUTDOWN - τερματίζει βίαια όλους τους clients (και τερματίζει το X window
|
* SHUTDOWN - τερματίζει βίαια όλους τους clients
|
||||||
* session)
|
* (και τερματίζει το X window session)
|
||||||
* SHOW_ALL - εμφανίζει όλα τα "κρυμένα" παράθυρα στην Επιφάνεια
|
* SHOW_ALL - εμφανίζει όλα τα "κρυμμένα" παράθυρα στην Επιφάνεια
|
||||||
* HIDE_OTHERS - "κρύβει" όλα τα παράθυρα στην Επιφάνεια, εκτός από
|
* HIDE_OTHERS - "κρύβει" όλα τα παράθυρα στην Επιφάνεια, εκτός από
|
||||||
* αυτό που είναι "ενεργό" (ή το τελευταίο που ήταν "ενεργό")
|
* αυτό που είναι "ενεργό" (ή το τελευταίο που ήταν "ενεργό")
|
||||||
* SAVE_SESSION - αποθηκεύει το εκάστοτε "κατάσταση" της Επιφάνειας, το οποίο
|
* SAVE_SESSION - αποθηκεύει την εκάστοτε "κατάσταση" της Επιφάνειας, το
|
||||||
* σημαίνει, όλα τα προγράμματα που εκτελούνται εκείνη τη
|
* οποίο σημαίνει, όλα τα προγράμματα που εκτελούνται εκείνη τη
|
||||||
* στιγμή με όλες τους τις ιδιότητες (γεωμετρία, θέση στην
|
* στιγμή με όλες τους τις ιδιότητες (γεωμετρία, θέση στην
|
||||||
* οθόνη, επιφάνεια εργασίας στην οποία έχουν εκτελεστεί, Dock ή
|
* οθόνη, επιφάνεια εργασίας στην οποία έχουν εκτελεστεί, Dock ή
|
||||||
* Clip από όπου εκτελέστηκαν, αν είναι ελαχιστοποιημένα,
|
* Clip από όπου εκτελέστηκαν, αν είναι ελαχιστοποιημένα,
|
||||||
* αναδιπλωμένα ή κρυμμένα). Επίσης αποθηκεύει σε πια Επιφάνεια
|
* αναδιπλωμένα ή κρυμμένα). Επίσης αποθηκεύει σε πια Επιφάνεια
|
||||||
* εργασίας ήταν ο χρήστης την τελευταία φορά. Όλες οι
|
* εργασίας ήταν ο χρήστης την τελευταία φορά. Όλες οι
|
||||||
* θα ανακληθούν την επόμενη φορά που ο χρήστης
|
* θα ανακληθούν την επόμενη φορά που ο χρήστης
|
||||||
* εκκινίσει τον Window Maker μέχρι η εντολή SAVE_SESSION ή
|
* εκκινήσει τον Window Maker μέχρι η εντολή SAVE_SESSION ή
|
||||||
* CLEAR_SESSION χρησιμοποιηθούν. Αν στο αρχείο Window Maker του
|
* CLEAR_SESSION χρησιμοποιηθούν. Αν στο αρχείο Window Maker του
|
||||||
* καταλόγου "$HOME/GNUstep/Defaults/" υπάρχει η εντολή:
|
* καταλόγου "$HOME/GNUstep/Defaults/" υπάρχει η εντολή:
|
||||||
* "SaveSessionOnExit = Yes;", τότε όλα τα παραπάνω γίνονται
|
* "SaveSessionOnExit = Yes;", τότε όλα τα παραπάνω γίνονται
|
||||||
* αυτόματα με κάθε έξοδο του χρήστη από τον Window Maker,
|
* αυτόματα με κάθε έξοδο του χρήστη από τον Window Maker,
|
||||||
* ακυρώνοντας ουσιαστικά κάθε προηγούμενη χρήση τως εντολών
|
* ακυρώνοντας ουσιαστικά κάθε προηγούμενη χρήση τως εντολών
|
||||||
* SAVE_SESSION ή CLEAR_SESSION (βλέπε παρακάτω).
|
* SAVE_SESSION ή CLEAR_SESSION (βλέπε παρακάτω).
|
||||||
* CLEAR_SESSION - σβήνει όλες τις πληροφορίες που έχουν αποθηκευθεί σύμφωνα με
|
* CLEAR_SESSION - σβήνει όλες τις πληροφορίες που έχουν αποθηκευθεί
|
||||||
* τα παραπάνω. Δεν θα έχει όμως κανένα αποτέλεσμα αν η εντολή
|
* σύμφωνα με τα παραπάνω. Δεν θα έχει όμως κανένα αποτέλεσμα
|
||||||
* SaveSessionOnExit=Yes.
|
* αν η εντολή SaveSessionOnExit=Yes.
|
||||||
* INFO - Πληροφορίες σχετικά με τον Window Mmaker
|
* INFO - Πληροφορίες σχετικά με τον Window Maker
|
||||||
*
|
*
|
||||||
* OPEN_MENU σύνταξη:
|
* OPEN_MENU σύνταξη:
|
||||||
* 1. Χειρισμός ενός αρχείου-μενού.
|
* 1. Χειρισμός ενός αρχείου-μενού.
|
||||||
* // ανοίγει το "αρχείο.μενού" το οποίο περιέχει ένα έγκυρο αρχείο-μενού και
|
* // ανοίγει το "αρχείο.μενού" το οποίο περιέχει ένα έγκυρο αρχείο-μενού
|
||||||
* // το εισάγει στην εκάστοτε θέση
|
* // καιτο εισάγει στην εκάστοτε θέση
|
||||||
* OPEN_MENU αρχείο.μενού
|
* OPEN_MENU αρχείο.μενού
|
||||||
* 2. Χειρισμός ενός Pipe μενού.
|
* 2. Χειρισμός ενός Pipe μενού.
|
||||||
* // τρέχει μια εντολή και χρησιμοποιεί την stdout αυτής για την κατασκευή του
|
* // τρέχει μια εντολή και χρησιμοποιεί την stdout αυτής για την κατασκευή
|
||||||
* // μενού. Το αποτέλεσμα της εντολής πρέπει να έχει έγκυρη σύνταξη για χρήση
|
* // του μενού. Το αποτέλεσμα της εντολής πρέπει να έχει έγκυρη σύνταξη
|
||||||
* // ως μενού. Το κενό διάστημα μεταξύ "|" και "εντολής" είναι προεραιτικό.
|
* // για χρήση ως μενού. Το κενό διάστημα μεταξύ "|" και "εντολής" είναι
|
||||||
|
* // προεραιτικό.
|
||||||
* OPEN_MENU | εντολή
|
* OPEN_MENU | εντολή
|
||||||
* 3. Χειρισμός ενός καταλόγου.
|
* 3. Χειρισμός ενός καταλόγου.
|
||||||
* // Ανοίγει έναν ή περισσότερους καταλόγους και κατασκευάζει ένα μενού με
|
* // Ανοίγει έναν ή περισσότερους καταλόγους και κατασκευάζει ένα μενού με
|
||||||
* // όλους τους υποκαταλόγους και τα εκτελέσιμα αρχεία σε αυτούς κατανεμημένα
|
* // όλους τους υποκαταλόγους και τα εκτελέσιμα αρχεία σε αυτούς
|
||||||
* // αλφαβητικά.
|
* // κατανεμημένα αλφαβητικά.
|
||||||
* OPEN_MENU /κάποιος/κατάλογος [/κάποιος/άλλος/κατάλογος ...]
|
* OPEN_MENU /κάποιος/κατάλογος [/κάποιος/άλλος/κατάλογος ...]
|
||||||
* 4. Χειρισμός ενός καταλόγου με κάποια εντολή.
|
* 4. Χειρισμός ενός καταλόγου με κάποια εντολή.
|
||||||
* // Ανοίγει έναν ή περισσότερους καταλόγους και κατασκευάζει ένα μενού με
|
* // Ανοίγει έναν ή περισσότερους καταλόγους και κατασκευάζει ένα μενού με
|
||||||
* // όλους τους υποκαταλόγους και τα αναγνώσιμα αρχεία σε αυτούς κατανεμημένα
|
* // όλους τους υποκαταλόγους και τα αναγνώσιμα αρχεία σε αυτούς
|
||||||
* // αλφαβητικά, τα οποία μπορούν να εκτελεστούν με μία εντολή.
|
* // κατανεμημένα αλφαβητικά, τα οποία μπορούν να εκτελεστούν με μία
|
||||||
|
* // εντολή.
|
||||||
* OPEN_MENU /κάποιος/κατάλογος [/κάποιος/άλλος/κατάλογος ...] WITH εντολή -παράμετροι
|
* OPEN_MENU /κάποιος/κατάλογος [/κάποιος/άλλος/κατάλογος ...] WITH εντολή -παράμετροι
|
||||||
*
|
* Παράμετροι:
|
||||||
|
* -noext αφαιρεί ότι βρίσκεται μετά την τελευταία τελεία του
|
||||||
|
* ονόματος του αρχείου.
|
||||||
*
|
*
|
||||||
* <Parameters> είναι το πρόγραμμα προς εκτέλεση.
|
* <Parameters> είναι το πρόγραμμα προς εκτέλεση.
|
||||||
*
|
*
|
||||||
* ** Παράμετροι για την εντολή EXEC:
|
* ** Παράμετροι για την εντολή EXEC:
|
||||||
* %s - Αντικατάσταση με την εκάστοτε επιλογή.
|
* %s - Αντικατάσταση με την εκάστοτε επιλογή.
|
||||||
* %a(μύνημα) - Ανοίγει ένα παράθυρο εισαγωγής δεδομένων και αντικαθιστά με αυτό
|
* %a(τίτλος[,προτροπή]) - Ανοίγει ένα παράθυρο εισαγωγής δεδομένων με τον
|
||||||
* που πληκτρολογήθηκε.
|
* προκαθορισμένο τίτλο και την προεραιτική προτροπή
|
||||||
|
* και αντικαθιστά με αυτό που πληκτρολογήθηκε.
|
||||||
* %w - Αντικατάσταση με την XID του εκάστοτε ενεργού παραθύρου
|
* %w - Αντικατάσταση με την XID του εκάστοτε ενεργού παραθύρου
|
||||||
|
* %W - Αντικατάσταση με τον αριθμό της εκάστοτε Επιφάνειας
|
||||||
*
|
*
|
||||||
* Μπορούν να εισαχθούν ειδικοί χαρακτήρες (όπως % ή ") με τον χαρακτήρα \:
|
* Μπορούν να εισαχθούν ειδικοί χαρακτήρες (όπως % ή ") με τον χαρακτήρα \:
|
||||||
* π.χ.: xterm -T "\"Καλημέρα Σου\""
|
* π.χ.: xterm -T "\"Καλημέρα Σου\""
|
||||||
@@ -99,7 +106,7 @@
|
|||||||
* // some X11 apps in different directories
|
* // some X11 apps in different directories
|
||||||
* "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
|
* "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
|
||||||
* // set some background images
|
* // set some background images
|
||||||
* "Φόντο" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
|
* "Παρασκήνιο" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
|
||||||
* // inserts the style.menu in this entry
|
* // inserts the style.menu in this entry
|
||||||
* "Στυλ" OPEN_MENU style.menu
|
* "Στυλ" OPEN_MENU style.menu
|
||||||
* "Δοκιμαστικό" END
|
* "Δοκιμαστικό" END
|
||||||
@@ -109,15 +116,16 @@
|
|||||||
|
|
||||||
"Μενού" MENU
|
"Μενού" MENU
|
||||||
"Πληροφορίες" MENU
|
"Πληροφορίες" MENU
|
||||||
"Info..." INFO_PANEL
|
"Σχετικά..." INFO_PANEL
|
||||||
"Legal..." LEGAL_PANEL
|
"Νομικά..." LEGAL_PANEL
|
||||||
"System Console" EXEC xconsole
|
"Κονσόλα Συστήματος" EXEC xconsole
|
||||||
"System Load" SHEXEC xosview || xload
|
"Εργασία Συστήματος" SHEXEC xosview || xload
|
||||||
"Process List" EXEC xterm -e top
|
"Λίστα Εργασιών" EXEC xterm -e top
|
||||||
"Βοήθεια" EXEC xman
|
"Βοήθεια" EXEC xman
|
||||||
"Πληροφορίες" END
|
"Πληροφορίες" END
|
||||||
|
"Εκτέλεση..." SHEXEC %a(Εκτέλεση,Γράψε την εντολή προς εκτέλεση:)
|
||||||
"XTerm" EXEC xterm -sb
|
"XTerm" EXEC xterm -sb
|
||||||
"Rxvt" EXEC rxvt -bg black -fg white -fn fixed
|
"Rxvt" EXEC rxvt -bg black -fg white -fn grfixed
|
||||||
"Επιφάνειες" WORKSPACE_MENU
|
"Επιφάνειες" WORKSPACE_MENU
|
||||||
"Προγράμματα" MENU
|
"Προγράμματα" MENU
|
||||||
"Γραφικά" MENU
|
"Γραφικά" MENU
|
||||||
@@ -131,7 +139,7 @@
|
|||||||
"LyX" EXEC lyx
|
"LyX" EXEC lyx
|
||||||
"Netscape" EXEC netscape
|
"Netscape" EXEC netscape
|
||||||
"Ghostview" EXEC ghostview %a(Αρχείο προς ανάγνωση)
|
"Ghostview" EXEC ghostview %a(Αρχείο προς ανάγνωση)
|
||||||
"Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Αρχείο προς ανάγνωση)
|
"Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobar,Γράψε το PDF προς προβολή)
|
||||||
"TkDesk" EXEC tkdesk
|
"TkDesk" EXEC tkdesk
|
||||||
"Προγράμματα" END
|
"Προγράμματα" END
|
||||||
"Κειμενογράφοι" MENU
|
"Κειμενογράφοι" MENU
|
||||||
@@ -154,9 +162,9 @@
|
|||||||
"Εξομοιωτής Τερματικού" EXEC xminicom
|
"Εξομοιωτής Τερματικού" EXEC xminicom
|
||||||
"Μεγέθυνση" EXEC xmag
|
"Μεγέθυνση" EXEC xmag
|
||||||
"Χάρτης Χρωμάτων" EXEC xcmap
|
"Χάρτης Χρωμάτων" EXEC xcmap
|
||||||
"XKill" EXEC xkill
|
"Θανάτωση Παραθύρου" EXEC xkill
|
||||||
"ASClock" EXEC asclock -shape
|
"Ρολόι" EXEC asclock -shape
|
||||||
"Clipboard" EXEC xclipboard
|
"Πρόχειρο" EXEC xclipboard
|
||||||
"Εργαλεία" END
|
"Εργαλεία" END
|
||||||
|
|
||||||
"Επιλογή" MENU
|
"Επιλογή" MENU
|
||||||
@@ -172,40 +180,47 @@
|
|||||||
"Τακτοποίηση Εικονιδίων" ARRANGE_ICONS
|
"Τακτοποίηση Εικονιδίων" ARRANGE_ICONS
|
||||||
"Ανανέωση Προβολής" REFRESH
|
"Ανανέωση Προβολής" REFRESH
|
||||||
"Κλείδωμα" EXEC xlock -allowroot -usefirst
|
"Κλείδωμα" EXEC xlock -allowroot -usefirst
|
||||||
"Σώσιμο Κατάστασης" SAVE_SESSION
|
"Σώσιμο Session" SAVE_SESSION
|
||||||
"Διαγραφή σωσμένης Κατάστασης" CLEAR_SESSION
|
"Διαγραφή σωσμένου Session" CLEAR_SESSION
|
||||||
"Επιφάνεια" END
|
"Επιφάνεια" END
|
||||||
|
|
||||||
"Εμφάνιση" MENU
|
"Εμφάνιση" MENU
|
||||||
"Θέματα" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
|
"Θέματα" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
|
||||||
"Στυλ" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
|
"Στυλ" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
|
||||||
"Ομάδα Εικονιδίων" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
|
"Ομάδα Εικονιδίων" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
|
||||||
"Φόντο" MENU
|
"Παρασκήνιο" MENU
|
||||||
"Μονόχρωμο" MENU
|
"Μονόχρωμο" MENU
|
||||||
"Μαύρο" WS_BACK '(solid, black)'
|
"Μαύρο" WS_BACK '(solid, black)'
|
||||||
"Μπλε" WS_BACK '(solid, "#505075")'
|
"Μπλε" WS_BACK '(solid, "#505075")'
|
||||||
"Λουλακί" WS_BACK '(solid, "#243e6c")'
|
"Λουλακί" WS_BACK '(solid, "#243e6c")'
|
||||||
"Σκούρο Μπλε" WS_BACK '(solid, "#180090")'
|
"Σκούρο Μπλε" WS_BACK '(solid, "#180090")'
|
||||||
"Βυσσινί" WS_BACK '(solid, "#554466")'
|
"Βυσσινί" WS_BACK '(solid, "#554466")'
|
||||||
"Σταρένιο" WS_BACK '(solid, "wheat4")'
|
"Σταρένιο" WS_BACK '(solid, "wheat4")'
|
||||||
"Σκούρο Γκρι" WS_BACK '(solid, "#333340")'
|
"Σκούρο Γκρι" WS_BACK '(solid, "#333340")'
|
||||||
"Κρασιού" WS_BACK '(solid, "#400020")'
|
"Κοκκινωπό" WS_BACK '(solid, "#400020")'
|
||||||
"Μονόχρωμο" END
|
"Μονόχρωμο" END
|
||||||
"Διαβαθμισμένο" MENU
|
"Διαβαθμισμένο" MENU
|
||||||
"Σημαία" WS_BACK '(mdgradient, green, red, white, green)'
|
"Ηλιοβασίλεμα" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'
|
||||||
"Ουράνος" WS_BACK '(vgradient, blue4, white)'
|
"Ουρανός" WS_BACK '(vgradient, blue4, white)'
|
||||||
|
"Μπλε Αποχρώσεις" WS_BACK '(vgradient, "#7080a5", "#101020")'
|
||||||
|
"Λουλακί Αποχρώσεις" WS_BACK '(vgradient, "#746ebc", "#242e4c")'
|
||||||
|
"Βυσσινί Αποχρώσεις" WS_BACK '(vgradient, "#654c66", "#151426")'
|
||||||
|
"Σταρένιες Αποχρώσεις" WS_BACK '(vgradient, "#a09060", "#302010")'
|
||||||
|
"Γκρίζες Αποχρώσεις" WS_BACK '(vgradient, "#636380", "#131318")'
|
||||||
|
"Κοκκινωπές Αποχρώσεις" WS_BACK '(vgradient, "#600040", "#180010")'
|
||||||
"Διαβαθμισμένο" END
|
"Διαβαθμισμένο" END
|
||||||
"Εικόνες" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
|
"Εικόνες" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
|
||||||
"Φόντο" END
|
"Παρασκήνιο" END
|
||||||
"Αποθήκευση Θέματος" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Όνομα Θέματος)"
|
"Αποθήκευση Θέματος" SHEXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Όνομα Θέματος,Γράψε το όνομα του αρχείου:)"
|
||||||
"Αποθήκευση Ομάδας Εικονιδίων" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Όνομα Ομάδας)"
|
"Αποθήκευση Ομάδας Εικονιδίων" SHEXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Όνομα Ομάδας,Γράψε το όνομα του αρχείου:)"
|
||||||
"Εμφάνιση" END
|
"Εμφάνιση" END
|
||||||
|
|
||||||
"Έξοδος" MENU
|
"Έξοδος" MENU
|
||||||
"Επανεκκίνηση" RESTART
|
"Επανεκκίνηση" RESTART
|
||||||
"Εκκίνηση του AfterStep" RESTART afterstep
|
"Εκκίνηση του BlackBox" RESTART blackbox
|
||||||
"Έξοδος..." EXIT
|
"Εκκίνηση του kwm" RESTART kwm
|
||||||
"Πλήρης Έξοδος..." SHUTDOWN
|
"Εκκίνηση του IceWM" RESTART icewm
|
||||||
|
"Έξοδος..." EXIT
|
||||||
"Έξοδος" END
|
"Έξοδος" END
|
||||||
"Μενού" END
|
"Μενού" END
|
||||||
|
|
||||||
|
|||||||
@@ -133,11 +133,18 @@ processEvents(int event_count)
|
|||||||
void
|
void
|
||||||
wSetFocusTo(WScreen *scr, WWindow *wwin)
|
wSetFocusTo(WScreen *scr, WWindow *wwin)
|
||||||
{
|
{
|
||||||
|
static WScreen *old_scr=NULL;
|
||||||
|
|
||||||
|
WWindow *old_focused;
|
||||||
WWindow *focused=scr->focused_window;
|
WWindow *focused=scr->focused_window;
|
||||||
int timestamp=LastTimestamp;
|
int timestamp=LastTimestamp;
|
||||||
WApplication *oapp=NULL, *napp=NULL;
|
WApplication *oapp=NULL, *napp=NULL;
|
||||||
int wasfocused;
|
int wasfocused;
|
||||||
|
|
||||||
|
if (!old_scr)
|
||||||
|
old_scr=scr;
|
||||||
|
old_focused=old_scr->focused_window;
|
||||||
|
|
||||||
LastFocusChange = timestamp;
|
LastFocusChange = timestamp;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -148,13 +155,13 @@ wSetFocusTo(WScreen *scr, WWindow *wwin)
|
|||||||
*/
|
*/
|
||||||
timestamp = CurrentTime;
|
timestamp = CurrentTime;
|
||||||
|
|
||||||
if (focused)
|
if (old_focused)
|
||||||
oapp = wApplicationOf(focused->main_window);
|
oapp = wApplicationOf(old_focused->main_window);
|
||||||
|
|
||||||
if (wwin == NULL) {
|
if (wwin == NULL) {
|
||||||
XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, timestamp);
|
XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, timestamp);
|
||||||
if (focused) {
|
if (old_focused) {
|
||||||
wWindowUnfocus(focused);
|
wWindowUnfocus(old_focused);
|
||||||
}
|
}
|
||||||
if (oapp) {
|
if (oapp) {
|
||||||
wAppMenuUnmap(oapp->menu);
|
wAppMenuUnmap(oapp->menu);
|
||||||
@@ -167,7 +174,10 @@ wSetFocusTo(WScreen *scr, WWindow *wwin)
|
|||||||
wKWMSendEventMessage(NULL, WKWMFocusWindow);
|
wKWMSendEventMessage(NULL, WKWMFocusWindow);
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
|
} else if(old_scr != scr && old_focused) {
|
||||||
|
wWindowUnfocus(old_focused);
|
||||||
}
|
}
|
||||||
|
|
||||||
wasfocused = wwin->flags.focused;
|
wasfocused = wwin->flags.focused;
|
||||||
napp = wApplicationOf(wwin->main_window);
|
napp = wApplicationOf(wwin->main_window);
|
||||||
|
|
||||||
@@ -245,6 +255,7 @@ wSetFocusTo(WScreen *scr, WWindow *wwin)
|
|||||||
wKWMSendEventMessage(wwin, WKWMFocusWindow);
|
wKWMSendEventMessage(wwin, WKWMFocusWindow);
|
||||||
#endif
|
#endif
|
||||||
XFlush(dpy);
|
XFlush(dpy);
|
||||||
|
old_scr=scr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
59
src/dialog.c
59
src/dialog.c
@@ -352,12 +352,14 @@ listIconPaths(WMList *lPtr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void drawIconProc(WMList *lPtr, int index, Drawable d, char *text,
|
void
|
||||||
int state, WMRect *rect) {
|
drawIconProc(WMList *lPtr, int index, Drawable d, char *text,
|
||||||
|
int state, WMRect *rect)
|
||||||
|
{
|
||||||
IconPanel *panel = WMGetHangedData(lPtr);
|
IconPanel *panel = WMGetHangedData(lPtr);
|
||||||
GC gc = panel->scr->draw_gc;
|
GC gc = panel->scr->draw_gc;
|
||||||
GC copygc = panel->scr->copy_gc;
|
GC copygc = panel->scr->copy_gc;
|
||||||
char *buffer, *dirfile, *iconfile;
|
char *buffer, *dirfile;
|
||||||
WMPixmap *pixmap;
|
WMPixmap *pixmap;
|
||||||
WMColor *blackcolor;
|
WMColor *blackcolor;
|
||||||
WMColor *whitecolor;
|
WMColor *whitecolor;
|
||||||
@@ -383,29 +385,53 @@ void drawIconProc(WMList *lPtr, int index, Drawable d, char *text,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
XClearArea(dpy, d, rect->pos.x,rect->pos.y, width, 64, False);
|
XClearArea(dpy, d, rect->pos.x, rect->pos.y, width, rect->size.height,
|
||||||
|
False);
|
||||||
XSetClipMask(dpy, gc, None);
|
XSetClipMask(dpy, gc, None);
|
||||||
XDrawRectangle(dpy, d, WMColorGC(whitecolor), rect->pos.x + 5,rect->pos.y +5, width - 10, 54);
|
/*
|
||||||
|
XDrawRectangle(dpy, d, WMColorGC(whitecolor), rect->pos.x + 5,
|
||||||
|
rect->pos.y +5, width - 10, 54);
|
||||||
|
*/
|
||||||
|
XDrawLine(dpy, d, WMColorGC(whitecolor), rect->pos.x,
|
||||||
|
rect->pos.y+rect->size.height-1, rect->pos.x+width,
|
||||||
|
rect->pos.y+rect->size.height-1);
|
||||||
|
|
||||||
|
|
||||||
if (state&WLDSSelected) {
|
if (state&WLDSSelected) {
|
||||||
XFillRectangle(dpy, d, WMColorGC(whitecolor), rect->pos.x + 5,rect->pos.y +5, width - 10, 54);
|
XFillRectangle(dpy, d, WMColorGC(whitecolor), rect->pos.x,
|
||||||
|
rect->pos.y, width, rect->size.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size = WMGetPixmapSize(pixmap);
|
||||||
|
|
||||||
XSetClipMask(dpy, copygc, WMGetPixmapMaskXID(pixmap));
|
XSetClipMask(dpy, copygc, WMGetPixmapMaskXID(pixmap));
|
||||||
XSetClipOrigin(dpy, copygc, rect->pos.x, rect->pos.y);
|
XSetClipOrigin(dpy, copygc, rect->pos.x + (width-size.width)/2,
|
||||||
size = WMGetPixmapSize(pixmap);
|
rect->pos.y+2);
|
||||||
XCopyArea(dpy, WMGetPixmapXID(pixmap), d, copygc, 0, 0,
|
XCopyArea(dpy, WMGetPixmapXID(pixmap), d, copygc, 0, 0,
|
||||||
size.width>100?100:size.width, size.height>64?64:size.height, rect->pos.x,rect->pos.y);
|
size.width>100?100:size.width, size.height>64?64:size.height,
|
||||||
|
rect->pos.x + (width-size.width)/2, rect->pos.y+2);
|
||||||
|
|
||||||
{
|
{
|
||||||
int i,j;
|
int i,j;
|
||||||
for(i=-1;i<2;i++)
|
int fheight = WMFontHeight(panel->normalfont);
|
||||||
for(j=-1;j<2;j++)
|
int tlen = strlen(text);
|
||||||
WMDrawString(wmscr, d, WMColorGC(whitecolor), panel->normalfont , rect->pos.x+i+7, rect->pos.y+62+j-WMFontHeight(panel->normalfont), text, strlen(text));
|
int twidth = WMWidthOfString(panel->normalfont, text, tlen);
|
||||||
}
|
int ofx, ofy;
|
||||||
WMDrawString(wmscr, d, WMColorGC(blackcolor), panel->normalfont , rect->pos.x+7, rect->pos.y+62-WMFontHeight(panel->normalfont), text, strlen(text));
|
|
||||||
|
|
||||||
WMReleasePixmap(pixmap);
|
ofx = rect->pos.x + (width - twidth)/2;
|
||||||
|
ofy = rect->pos.y + 64 - fheight;
|
||||||
|
|
||||||
|
for(i=-1;i<2;i++)
|
||||||
|
for(j=-1;j<2;j++)
|
||||||
|
WMDrawString(wmscr, d, WMColorGC(whitecolor),
|
||||||
|
panel->normalfont, ofx+i, ofy+j,
|
||||||
|
text, tlen);
|
||||||
|
|
||||||
|
WMDrawString(wmscr, d, WMColorGC(blackcolor), panel->normalfont,
|
||||||
|
ofx, ofy, text, tlen);
|
||||||
|
}
|
||||||
|
|
||||||
|
WMReleasePixmap(pixmap);
|
||||||
/* I hope it is better to do not use cache / on my box it is fast nuff */
|
/* I hope it is better to do not use cache / on my box it is fast nuff */
|
||||||
XFlush(dpy);
|
XFlush(dpy);
|
||||||
|
|
||||||
@@ -413,6 +439,7 @@ void drawIconProc(WMList *lPtr, int index, Drawable d, char *text,
|
|||||||
WMReleaseColor(whitecolor);
|
WMReleaseColor(whitecolor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
buttonCallback(void *self, void *clientData)
|
buttonCallback(void *self, void *clientData)
|
||||||
{
|
{
|
||||||
@@ -429,7 +456,7 @@ buttonCallback(void *self, void *clientData)
|
|||||||
} else if (bPtr==panel->previewButton) {
|
} else if (bPtr==panel->previewButton) {
|
||||||
/**** Previewer ****/
|
/**** Previewer ****/
|
||||||
WMSetButtonEnabled(bPtr, False);
|
WMSetButtonEnabled(bPtr, False);
|
||||||
WMSetListUserDrawItemHeight(panel->iconList, 64);
|
WMSetListUserDrawItemHeight(panel->iconList, 68);
|
||||||
WMSetListUserDrawProc(panel->iconList, drawIconProc);
|
WMSetListUserDrawProc(panel->iconList, drawIconProc);
|
||||||
WMRedisplayWidget(panel->iconList);
|
WMRedisplayWidget(panel->iconList);
|
||||||
/* for draw proc to access screen/gc */
|
/* for draw proc to access screen/gc */
|
||||||
|
|||||||
10
src/misc.c
10
src/misc.c
@@ -157,13 +157,13 @@ MakeCPPArgs(char *path)
|
|||||||
tmp = wstrdup(path);
|
tmp = wstrdup(path);
|
||||||
buf = strchr(tmp+1, ' ');
|
buf = strchr(tmp+1, ' ');
|
||||||
if (buf) {
|
if (buf) {
|
||||||
*buf = 0;
|
*buf = 0;
|
||||||
}
|
}
|
||||||
buf = strrchr(tmp, '/');
|
buf = strrchr(tmp, '/');
|
||||||
if (buf) {
|
if (buf) {
|
||||||
*buf = 0; /* trunc filename */
|
*buf = 0; /* trunc filename */
|
||||||
putdef(line, " -I", tmp);
|
putdef(line, " -I", tmp);
|
||||||
}
|
}
|
||||||
free(tmp);
|
free(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ libwraster_la_SOURCES = \
|
|||||||
|
|
||||||
INCLUDES = @DFLAGS@ @HEADER_SEARCH_PATH@
|
INCLUDES = @DFLAGS@ @HEADER_SEARCH_PATH@
|
||||||
|
|
||||||
LIBLIST = libwraster.la @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ -lm
|
LIBLIST = $(top_builddir)/wrlib/libwraster.la @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ -lm
|
||||||
|
|
||||||
view_SOURCES= view.c
|
view_SOURCES= view.c
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user