1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

dtwm: add a new feature -- window rename.

This commit is contained in:
hyousatsu 2022-12-25 03:30:39 +00:00 committed by Jon Trulson
parent 8ed81a67a7
commit e201ef0a7b
49 changed files with 927 additions and 64 deletions

View file

@ -700,6 +700,39 @@ indem im Dialogfenster 'Neustart' des Umgebungsmanagers die Option 'Standardsitz
festlegen' ausgewählt wird.</para>
<!-- MODULE SEConfirmLogoutWithChoiceDE SElogch.DEa -->
</sect2>
<Sect2 Id="WMWindowRenameDialogDE">
<Title>Dialogfeld zum Umbenennen von Fenstern</Title>
<Para><Anchor Id="WindowRename">
</Para>
<Para>
Geben Sie den neuen Namen in das Textfeld ein (lassen Sie es leer, um
den Standardfenstertitel wiederherzustellen).
</Para>
<VariableList>
<VarListEntry>
<Term>OK</Term>
<ListItem>
<Para>
Benennen Sie das Fenster um und schließen Sie den Umbenennen Dialog.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Abbrechen</Term>
<ListItem>
<Para>
Brechen Sie das Umbenennen ab und schließen Sie den Umbenennen Dialog.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Hilfe</Term>
<ListItem>
<Para>Zeigt dieses Hilfethema an.</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Sect2>
</sect1>
<sect1 id="ConfirmSessionCreateDE">
<title>Bestätigung der Sitzungserstellung<anchor id="ConfirmSessionCreation"></title>

View file

@ -814,6 +814,35 @@ to keep returning. Save a home session by choosing
Set Home Session in Style Manager's Startup dialog box.</Para>
<!-- MODULE SEConfirmLogoutWithChoiceDE SElogch.DEa -->
</Sect2>
<Sect2 Id="WMWindowRenameDialogDE">
<Title>Window Rename Dialog</Title>
<Para><Anchor Id="WindowRename">
</Para>
<Para>
Type the new name in the text field (leave it blank to restore the
default window title).
</Para>
<VariableList>
<VarListEntry>
<Term>OK</Term>
<ListItem>
<Para>Rename the window and close the rename dialog.</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Cancel</Term>
<ListItem>
<Para>Cancel renaming and close the rename dialog.</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Help</Term>
<ListItem>
<Para>Displays this help topic.</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Sect2>
</Sect1>
<Sect1 Id="ConfirmSessionCreateDE">

View file

@ -670,6 +670,41 @@ Establecer sesión de inicio en el cuadro de diálogo Arranque
del Gestor de estilos.</para>
<!-- MODULE SEConfirmLogoutWithChoiceDE SElogch.DEa -->
</sect2>
<Sect2 Id="WMWindowRenameDialogDE">
<Title>Cuadro de diálogo Cambiar nombre de ventana</Title>
<Para><Anchor Id="WindowRename">
</Para>
<Para>
Escriba el nuevo nombre en el campo de texto (déjalo en blanco para
restaurar el título de ventana predeterminado).
</Para>
<VariableList>
<VarListEntry>
<Term>OK</Term>
<ListItem>
<Para>
Cambie el nombre de la ventana y cierre el cuadro de diálogo de
cambio de nombre.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Cancelar</Term>
<ListItem>
<Para>
Cancele el cambio de nombre y cierre el cuadro de diálogo de cambio
de nombre.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Ayuda</Term>
<ListItem>
<Para>Muestra este tema de ayuda.</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Sect2>
</sect1>
<sect1 id="ConfirmSessionCreateDE">
<title>Confirmación de la creación de una sesión <anchor

View file

@ -731,6 +731,40 @@ session initiale dans la boîte de dialogue Lancement du Gestionnaire
de configuration.</para>
<!-- MODULE SEConfirmLogoutWithChoiceDE SElogch.DEa -->
</sect2>
<Sect2 Id="WMWindowRenameDialogDE">
<Title>Boîte de dialogue Renommer la fenêtre</Title>
<Para><Anchor Id="WindowRename">
</Para>
<Para>
Tapez le nouveau nom dans le champ de texte (laissez-le vide pour
restaurer le titre de fenêtre par défaut).
</Para>
<VariableList>
<VarListEntry>
<Term>OK</Term>
<ListItem>
<Para>
Renommez la fenêtre et fermez la boîte de dialogue de renommage.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Annuler</Term>
<ListItem>
<Para>
Annuler le changement de nom et fermez la boîte de dialogue de
changement de nom.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Aide</Term>
<ListItem>
<Para>Affiche l'aide.</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Sect2>
</sect1>
<sect1 id="ConfirmSessionCreateDE">
<title>Confirmation de création de session<anchor id="ConfirmSessionCreation"></title>

View file

@ -664,6 +664,40 @@ scegliere Impostare sessione iniziale nel riquadro di dialogo Avvio della
Gestione degli stili.</para>
<!-- MODULE SEConfirmLogoutWithChoiceDE SElogch.DEa -->
</sect2>
<Sect2 Id="WMWindowRenameDialogDE">
<Title>Finestra di dialogo Rinomina finestra</Title>
<Para><Anchor Id="WindowRename">
</Para>
<Para>
Digitare il nuovo nome nel campo di testo (lasciarlo vuoto per
ripristinare il titolo predefinito della finestra).
</Para>
<VariableList>
<VarListEntry>
<Term>OK</Term>
<ListItem>
<Para>
Rinominare la finestra e chiudere la finestra di dialogo Rinomina.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Annullare</Term>
<ListItem>
<Para>
Annulla la ridenominazione e chiudi la finestra di dialogo per la
ridenominazione.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Aiuto</Term>
<ListItem>
<Para>Visualizza queste informazioni di aiuto.</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Sect2>
</sect1>
<sect1 id="confirmsessioncreatede">
<title>Conferma della creazione di una sessione<anchor id="confirmsessioncreation"></title>

View file

@ -764,6 +764,35 @@
[スタイル・マネージャの起動] ダイアログ・ボックスの [ホームセッションを設定] を選択して、ホーム・セッションを保存してください。</Para>
<!-- MODULE SEConfirmLogoutWithChoiceDE SElogch.DEa -->
</Sect2>
<Sect2 Id="WMWindowRenameDialogDE">
<Title>ウィンドウの名前の変更・ダイアログ</Title>
<Para><Anchor Id="WindowRename">
</Para>
<Para>
テキストフィールドに新しい名前を入力します(空白のままにすると、
デフォルトのウィンドウ タイトルが復元されます)。
</Para>
<VariableList>
<VarListEntry>
<Term>了解</Term>
<ListItem>
<Para>ウィンドウの名前を変更し、名前の変更ダイアログを閉じます。</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>取消し</Term>
<ListItem>
<Para>名前の変更をキャンセルし、名前の変更ダイアログを閉じます。</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>ヘルプ</Term>
<ListItem>
<Para>ヘルプ・トピックを表示します。</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Sect2>
</Sect1>
<Sect1 Id="ConfirmSessionCreateDE">

View file

@ -246,6 +246,12 @@ Dtwm*iconPlacement: Top Left
Dtwm*iconBoxGeometry: 1x4+16+20
Dtwm*iconBoxSBDisplayPolicy: horizontal
!####
!#
!# Specify the title for instant title dialog.
!#
!####
Dtwm*instantTitleDialogShell.title: %|nls-21-#Rename#|
!####
!#

View file

@ -34,9 +34,9 @@ dtwm_SOURCES = WmCDInfo.c WmCDecor.c WmCEvent.c \
Clock.c DataBaseLoad.c PanelS.c \
Parse.c PopupMenu.c Session.c \
UI.c WmBackdrop.c WmFP.c \
WmHelp.c WmIPC.c WmOL.c \
WmParse.c WmParseP.c WmPresence.c \
WmWrkspace.c WmXSMP.c
WmHelp.c WmIPC.c WmInstantTitle.c \
WmOL.c WmParse.c WmParseP.c \
WmPresence.c WmWrkspace.c WmXSMP.c
dtfplist_SOURCES = Print.c Parse.c DataBaseLoad.c WmParse.c Session.c

View file

@ -1159,7 +1159,7 @@ void GetTextBox (ClientData *pcd, XRectangle *pBox)
fontList = CLIENT_TITLE_APPEARANCE(pcd).fontList;
else
fontList = CLIENT_APPEARANCE(pcd).fontList;
textWidth = XmStringWidth(fontList, pcd->clientTitle);
textWidth = XmStringWidth(fontList, CLIENT_DISPLAY_TITLE(pcd));
offset = TitleBarHeight(pcd)/2;
@ -1227,6 +1227,7 @@ void DrawWindowTitle (ClientData *pcd, Boolean eraseFirst)
XRectangle textBox;
Window win;
XmFontList fontList;
XmString title = CLIENT_DISPLAY_TITLE(pcd);
/* make sure there is a title bar first */
if (!(decoration & MWM_DECOR_TITLE))
@ -1276,11 +1277,11 @@ void DrawWindowTitle (ClientData *pcd, Boolean eraseFirst)
}
#ifdef DT_LEFT_JUSTIFIED_TITLE
WmDrawXmString(DISPLAY, win, fontList, pcd->clientTitle, clientGC,
WmDrawXmString(DISPLAY, win, fontList, title, clientGC,
textBox.x, textBox.y, textBox.width, &textBox,
((wmGD.frameStyle == WmSLAB) ? False : True));
#else /* DT_LEFT_JUSTIFIED_TITLE */
WmDrawXmString(DISPLAY, win, fontList, pcd->clientTitle, clientGC,
WmDrawXmString(DISPLAY, win, fontList, title, clientGC,
textBox.x, textBox.y, textBox.width, &textBox,
True);
#endif /* DT_LEFT_JUSTIFIED_TITLE */

View file

@ -66,6 +66,7 @@
#include "WmIPC.h"
#include "WmIPlace.h"
#include "WmIconBox.h"
#include "WmInstantTitle.h"
#include "WmKeyFocus.h"
#include "WmMenu.h"
#include "WmPresence.h"
@ -4514,6 +4515,25 @@ Boolean F_Workspace_Presence (String args, ClientData *pCD, XEvent *event)
} /* END OF FUNCTION F_Workspace_Presence */
/**
* @brief This function pops up the instant title dialog.
*
* @param args
* @param pCD
* @param event
*
* @return False
*/
Boolean F_Rename (String args, ClientData *pCD, XEvent *event)
{
if (pCD && (pCD->dtwmFunctions & DtWM_FUNCTION_OCCUPY_WS))
{
InstantTitleShowDialog (pCD);
}
return False;
}
#ifdef DEBUG
void
DumpWindowList ()

View file

@ -93,6 +93,7 @@ extern Boolean F_Next_Workspace (String args, ClientData *pCD, XEvent *event);
extern Boolean F_Prev_Workspace (String args, ClientData *pCD, XEvent *event);
extern Boolean F_Workspace_Presence (String args, ClientData *pCD,
XEvent *event);
extern Boolean F_Rename (String args, ClientData *pCD, XEvent *event);
#if defined(DEBUG)
extern Boolean F_ZZ_Debug (String, ClientData *, XEvent *);
#endif /* DEBUG */

View file

@ -1106,6 +1106,19 @@ typedef struct _FrameInfo
} FrameInfo;
/**
* @brief Specific data for instant title dialog
*/
typedef struct _InstantTitleData
{
Boolean widgetsInitialized;
struct _ClientData *pCDforClient;
Context contextForClient;
Widget dialogShellW;
Widget dialogBoxW;
Widget formW;
Widget textFieldW;
} InstantTitleData, *PtrInstantTitleData;
/*************************************<->*************************************
@ -1132,6 +1145,7 @@ typedef struct _WmScreenData
Widget confirmboxW[4];
Widget wPanelist; /* panel object */
WsPresenceData presence; /* workspace presence dialog*/
InstantTitleData instantTitleData; /* instant title dialog */
Widget switcherW; /* workspace switcher */
Widget switcherShellW; /* shell for ws switcher */
Window wmWorkspaceWin; /* holds wm properties */
@ -1310,6 +1324,8 @@ typedef struct _WmScreenData *PtrScreenData;
/*
#define ICON_DEFAULT_TITLE(pcd) ((pcd)->iconDefaultTitle)
*/
#define ICON_DISPLAY_TITLE(pcd) \
((pcd)->instantTitle ? (pcd)->instantTitle : (pcd)->iconTitle)
#define ICON_DECORATION(pcd) ((pcd)->pSD->iconDecoration)
#define ICON_HEIGHT(pcd) ((pcd)->pSD->iconHeight)
#define ICON_WIDTH(pcd) ((pcd)->pSD->iconWidth)
@ -1465,6 +1481,8 @@ typedef struct _WmWorkspaceData *PtrWorkspaceData;
/*
#define CLIENT_DEFAULT_TITLE(pcd) ((pcd)->pSD->clientDefaultTitle)
*/
#define CLIENT_DISPLAY_TITLE(pcd) \
((pcd)->instantTitle ? (pcd)->instantTitle : (pcd)->clientTitle)
#define MAX_MAX_SIZE(pcd) ((pcd)->pSD->maximumMaximumSize)
#define SHOW_RESIZE_CURSORS(pcd) ((pcd)->pSD->resizeCursors)
#define JOIN_BEVEL(pcd) ((pcd)->pSD->joinBevel)
@ -1636,6 +1654,7 @@ typedef struct _ClientData
int monitorY; /* monitor Y loc */
int monitorWidth; /* monitor width */
int monitorHeight; /* monitor height */
XmString instantTitle; /* instant title */
/* client window frame graphic data: */

View file

@ -38,6 +38,7 @@
#define WM_DT_WSRENAMEERROR_HELP_TOPIC "WSRENAMEERROR"
#define WM_DT_ICONBOX_TOPIC "ICONBOX"
#define WM_DT_WSPRESENCE_TOPIC "WSPRESENCE"
#define WM_DT_WINDOWRENAME_TOPIC "WINDOWRENAME"
typedef struct _WmHelpTopicData
{

View file

@ -868,7 +868,7 @@ void DrawIconTitle (ClientData *pcd)
/* paint the text */
WmDrawXmString(DISPLAY, ICON_FRAME_WIN(pcd), ICON_APPEARANCE(pcd).fontList,
pcd->iconTitle, iconGC,
ICON_DISPLAY_TITLE(pcd), iconGC,
textBox.x, textBox.y, textBox.width, &textBox, True);
} /* END OF FUNCTION DrawIconTitle */
@ -950,7 +950,7 @@ void RedisplayIconTitle (ClientData *pcd)
/* in with the new */
WmDrawXmString(DISPLAY, ICON_FRAME_WIN(pcd),
ICON_APPEARANCE(pcd).fontList,
pcd->iconTitle, iconGC,
ICON_DISPLAY_TITLE(pcd), iconGC,
textBox.x, textBox.y, textBox.width, &textBox,
True);
@ -1768,7 +1768,7 @@ void PaintActiveIconText (ClientData *pcd, Boolean erase)
WmDrawXmString(DISPLAY, pcd->pSD->activeIconTextWin,
ICON_APPEARANCE(pcd).fontList,
pcd->iconTitle, iconGC,
ICON_DISPLAY_TITLE(pcd), iconGC,
textBox.x, textBox.y, textBox.width, &textBox, True);
@ -1821,7 +1821,7 @@ void ShowActiveIconText (ClientData *pcd)
/* set up geometry for the window */
XmStringExtent (ICON_APPEARANCE(pcd).fontList, pcd->iconTitle,
XmStringExtent (ICON_APPEARANCE(pcd).fontList, ICON_DISPLAY_TITLE(pcd),
&dWidth, &dHeight);
activeIconTextHeight = (unsigned int) dHeight +
@ -2004,7 +2004,7 @@ void MoveActiveIconText (ClientData *pcd)
if (pcd->pSD->activeIconTextWin && wmGD.activeIconTextDisplayed) {
/* set up geometry for the window */
XmStringExtent (ICON_APPEARANCE(pcd).fontList, pcd->iconTitle,
XmStringExtent (ICON_APPEARANCE(pcd).fontList, ICON_DISPLAY_TITLE(pcd),
&dWidth, &dHeight);
activeIconTextHeight = (unsigned int) dHeight +

View file

@ -1240,6 +1240,7 @@ InitWmScreen (WmScreenData *pSD, int sNum)
pSD->presence.shellW = NULL;
pSD->presence.onScreen = False;
pSD->presence.userDismissed = True;
pSD->instantTitleData.widgetsInitialized = False;
pSD->workspaceList = NULL;
pSD->numWorkspaces = 0;
pSD->numWsDataAllocated = 0;

View file

@ -0,0 +1,333 @@
/*
* CDE - Common Desktop Environment
*
* (c) Copyright 1993-2012 The Open Group
* (c) Copyright 2012-2022 CDE Project contributors, see
* CONTRIBUTORS for details
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
#include <Xm/DialogS.h>
#include <Xm/Form.h>
#include <Xm/Text.h>
#include <Xm/TextF.h>
#include <Dt/DialogBox.h>
#include <Dt/SharedProcs.h>
#include "WmGlobal.h"
#include "WmCDecor.h"
#include "WmError.h"
#include "WmHelp.h"
#include "WmIDecor.h"
#include "WmInstantTitle.h"
#include "WmPanelP.h"
#include "WmProperty.h"
#include "WmWinList.h"
#include "WmWrkspace.h"
extern XtPointer _XmStringUngenerate(XmString, XmStringTag,
XmTextType, XmTextType);
static void InstantTitleGetTitle(PtrInstantTitleData pITD) {
String value;
Widget textFieldW = pITD->textFieldW;
ClientData *pCD = pITD->pCDforClient;
XmString title = pITD->contextForClient == F_CONTEXT_ICON ?
ICON_DISPLAY_TITLE(pCD) : CLIENT_DISPLAY_TITLE(pCD);
if (!title) return;
value = _XmStringUngenerate(title, NULL, XmCHARSET_TEXT, XmCHARSET_TEXT);
if (!value) return;
XtVaSetValues(textFieldW, XmNvalue, value, NULL);
XtFree(value);
XtVaSetValues(textFieldW, XmNcursorPosition,
XmTextFieldGetLastPosition(textFieldW), NULL);
}
static void InstantTitleSetTitle(PtrInstantTitleData pITD) {
char *str = XmTextFieldGetString(pITD->textFieldW);
ClientData *pCD = pITD->pCDforClient;
Context context = pITD->contextForClient;
XmString *title = &pCD->instantTitle;
Window client = pCD->client;
Atom name = wmGD.xa__NET_WM_VISIBLE_NAME;
Atom iconName = wmGD.xa__NET_WM_VISIBLE_ICON_NAME;
if (*title) XmStringFree(*title);
_DtStripSpaces(str);
if (str[0]) {
*title = XmStringCreateLocalized(str);
SetUtf8String (DISPLAY, client, name, str);
SetUtf8String (DISPLAY, client, iconName, str);
}
else {
*title = NULL;
XDeleteProperty(DISPLAY, client, name);
XDeleteProperty(DISPLAY, client, iconName);
}
XtFree(str);
if (context == F_CONTEXT_ICON || pCD->pSD->useIconBox)
RedisplayIconTitle(pCD);
if (context != F_CONTEXT_ICON) DrawWindowTitle(pCD, True);
}
/**
* @brief Hides the instant title dialog.
*
* @param pClientData
*/
void InstantTitleHideDialog(ClientData *pClientData) {
PtrInstantTitleData pITD = &pClientData->pSD->instantTitleData;
if (pITD->widgetsInitialized && pITD->pCDforClient == pClientData)
XtUnmanageChild(pITD->dialogBoxW);
}
static void InstantTitleButtonCB(Widget w, XtPointer client_data,
XtPointer call_data)
{
PtrInstantTitleData pITD = client_data;
DtDialogBoxCallbackStruct *cb = call_data;
switch (cb->button_position) {
case 1:
InstantTitleSetTitle(pITD);
case 2:
InstantTitleHideDialog(pITD->pCDforClient);
break;
case 3:
XtCallCallbacks(pITD->dialogBoxW, XmNhelpCallback, NULL);
break;
default:
break;
}
}
static void InstantTitleWorkspaceModifyCB(Widget w, Atom atom_name, int type,
XtPointer client_data)
{
PtrInstantTitleData pITD = client_data;
ClientData *pCD = pITD->pCDforClient;
if (type == DtWSM_REASON_CURRENT &&
pITD->contextForClient == F_CONTEXT_ICON &&
XtIsManaged(pITD->dialogBoxW) && ClientInWorkspace(ACTIVE_WS, pCD))
InstantTitleShowDialog(pCD);
}
static Boolean InstantTitleMakeDialog(PtrInstantTitleData pITD) {
Cardinal n;
Arg args[10];
XmString buttonStrings[3];
Widget dialogShellW, dialogBoxW, formW, cancelW, textFieldW;
Boolean *widgetsInitialized = &pITD->widgetsInitialized;
if (*widgetsInitialized) return True;
n = 0;
XtSetArg(args[n], XmNallowShellResize, True); ++n;
XtSetArg(args[n], XmNmwmFunctions,
MWM_FUNC_ALL | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE); ++n;
dialogShellW = pITD->dialogShellW = XtCreatePopupShell(
"instantTitleDialogShell", xmDialogShellWidgetClass,
pITD->pCDforClient->pSD->screenTopLevelW1, args, n);
if (!dialogShellW) goto err;
if (!DtWsmAddWorkspaceModifiedCallback(dialogShellW,
InstantTitleWorkspaceModifyCB, pITD)) goto err;
buttonStrings[0] = XmStringCreateLocalized((char *)_DtOkString);
buttonStrings[1] = XmStringCreateLocalized((char *)_DtCancelString);
buttonStrings[2] = XmStringCreateLocalized((char *)_DtHelpString);
n = 0;
XtSetArg(args[n], XmNallowOverlap, False); ++n;
XtSetArg(args[n], XmNdefaultPosition, False); ++n;
XtSetArg(args[n], XmNbuttonCount, 3); ++n;
XtSetArg(args[n], XmNbuttonLabelStrings, buttonStrings); ++n;
dialogBoxW = pITD->dialogBoxW = _DtCreateDialogBox(dialogShellW,
"instantTitleDialogBox", args, n);
XmStringFree(buttonStrings[0]);
XmStringFree(buttonStrings[1]);
XmStringFree(buttonStrings[2]);
if (!dialogBoxW) goto err;
XtAddCallback(dialogBoxW, XmNcallback, InstantTitleButtonCB, pITD);
XtAddCallback(dialogBoxW, XmNhelpCallback, WmDtWmTopicHelpCB,
WM_DT_WINDOWRENAME_TOPIC);
cancelW = _DtDialogBoxGetButton(dialogBoxW, 2);
if (!cancelW) goto err;
n = 0;
XtSetArg(args[n], XmNautoUnmanage, False); ++n;
XtSetArg(args[n], XmNcancelButton, cancelW); ++n;
XtSetValues (dialogBoxW, args, n);
formW = pITD->formW = XmCreateForm(dialogBoxW, "instantTitleForm", NULL, 0);
if (!formW) goto err;
n = 0;
XtSetArg(args[n], XmNtopAttachment, XmATTACH_POSITION); ++n;
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;
XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;
XtSetArg(args[n], XmNbottomAttachment, XmATTACH_NONE); ++n;
XtSetArg(args[n], XmNmaxLength, FILENAME_MAX); ++n;
textFieldW = pITD->textFieldW = XmCreateTextField(formW,
"instantTitleTextField", args, n);
if (!textFieldW) goto err;
XtManageChild(dialogShellW);
XtManageChild(dialogBoxW);
XtManageChild(formW);
XtManageChild(cancelW);
XtManageChild(textFieldW);
DtWsmRemoveWorkspaceFunctions(DISPLAY1, XtWindow(dialogShellW));
*widgetsInitialized = True;
return True;
err:
if (dialogShellW) {
XtDestroyWidget(dialogShellW);
*widgetsInitialized = False;
}
Warning(GETMESSAGE(88, 1, "1 Unable to create instant title dialog."));
return False;
}
static void InstantTitleSetPosition(PtrInstantTitleData pITD) {
int x, y;
Dimension height;
Cardinal n;
Arg args[10];
XFontStruct *font;
Window windowGroup;
Widget dialogShellW = pITD->dialogShellW;
Context context = pITD->contextForClient;
ClientData *pCD = pITD->pCDforClient;
WmScreenData *pSD = pCD->pSD;
XtVaGetValues(dialogShellW, XmNheight, &height, NULL);
if (wmGD.positionIsFrame) {
if (pSD->decoupleTitleAppearance)
font = pSD->clientTitleAppearance.font;
else
font = pSD->clientAppearance.font;
height += TEXT_HEIGHT(font) + (2 * pSD->frameBorderWidth);
}
GetSystemMenuPosition(pCD, &x, &y, height, context);
if (context == F_CONTEXT_ICON) {
if (pSD->useIconBox && P_ICON_BOX(pCD))
windowGroup = P_ICON_BOX(pCD)->pCD_iconBox->client;
else
windowGroup = XtUnspecifiedWindowGroup;
}
else {
windowGroup = pCD->client;
}
n = 0;
XtSetArg(args[n], XmNx, x); ++n;
XtSetArg(args[n], XmNy, y); ++n;
XtSetArg(args[n], XmNtransientFor, NULL); ++n;
XtSetArg(args[n], XmNwindowGroup, windowGroup); ++n;
XtSetValues(dialogShellW, args, n);
}
/**
* @brief Shows the instant title dialog.
*
* @param pClientData
* @param context
*/
void InstantTitleShowDialog(ClientData *pClientData) {
Widget dialogBoxW, textFieldW;
Context context;
ClientData *pCD = pClientData->transientLeader ?
FindTransientTreeLeader(pClientData) : pClientData;
WmScreenData *pSD = pCD->pSD;
PtrInstantTitleData pITD = &pSD->instantTitleData;
switch (pCD->clientState) {
case MINIMIZED_STATE:
context = F_CONTEXT_ICON;
break;
case NORMAL_STATE:
case MAXIMIZED_STATE:
context = F_CONTEXT_WINDOW;
break;
default:
return;
}
pITD->pCDforClient = pCD;
pITD->contextForClient = context;
if (!InstantTitleMakeDialog(pITD)) return;
InstantTitleGetTitle(pITD);
InstantTitleSetPosition(pITD);
dialogBoxW = pITD->dialogBoxW;
XtUnmanageChild(dialogBoxW);
XtManageChild(dialogBoxW);
textFieldW = pITD->textFieldW;
XmProcessTraversal(textFieldW, XmTRAVERSE_CURRENT);
XmTextSetSelection(textFieldW, 0, XmTextGetLastPosition(textFieldW),
CurrentTime);
}

View file

@ -0,0 +1,32 @@
/*
* CDE - Common Desktop Environment
*
* (c) Copyright 1993-2012 The Open Group
* (c) Copyright 2012-2022 CDE Project contributors, see
* CONTRIBUTORS for details
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
#ifndef WMINSTANTTITLE_H
#define WMINSTANTTITLE_H
void InstantTitleHideDialog(ClientData *pClientData);
void InstantTitleShowDialog(ClientData *pClientData);
#endif

View file

@ -50,6 +50,7 @@
#include "WmIDecor.h"
#include "WmIconBox.h"
#include "WmImage.h"
#include "WmInstantTitle.h"
#include "WmKeyFocus.h"
#include "WmPanelP.h" /* typedef needed in WmManage.h */
#include <Dt/Message.h>
@ -957,6 +958,8 @@ void WithdrawWindow (ClientData *pCD)
pCD->pSD->presence.pCDforClient = NULL;
}
InstantTitleHideDialog (pCD);
/*
* Check to see if the window is being unmanaged because the window
* was destroyed.
@ -1136,6 +1139,11 @@ void WithdrawWindow (ClientData *pCD)
XmStringFree (pCD->iconTitle);
}
if (pCD->instantTitle)
{
XmStringFree (pCD->instantTitle);
}
if (pCD->clientCmapCount > 0)
{
for (i = 0; i < pCD->clientCmapCount; i++)

View file

@ -323,14 +323,14 @@ wspSetWindowName(
if (pPres->contextForClient == F_CONTEXT_ICON)
{
XtSetArg (nameArgs[nameN], XmNlabelString,
pPres->pCDforClient->iconTitle); nameN++;
ICON_DISPLAY_TITLE(pPres->pCDforClient)); nameN++;
XtSetArg (labelArgs[labelN], XmNlabelString,
iconLabelString); labelN++;
}
else
{
XtSetArg (nameArgs[nameN], XmNlabelString,
pPres->pCDforClient->clientTitle); nameN++;
CLIENT_DISPLAY_TITLE(pPres->pCDforClient)); nameN++;
XtSetArg (labelArgs[labelN], XmNlabelString,
windowLabelString); labelN++;
}

View file

@ -36,6 +36,7 @@
#include "WmGlobal.h"
#include "WmICCC.h"
#include <limits.h>
#include <stdio.h>
#include <Dt/WsmP.h>
#include <X11/Xatom.h>
@ -1887,6 +1888,55 @@ HasProperty (
} /* END OF FUNCTION HasProperty */
/**
* @brief This function calls XGetWindowProperty to get the UTF8_STRING
* property.
*
* @param display
* @param w
* @param property
*
* @return A string or NULL.
*/
char *GetUtf8String (Display *display, Window w, Atom property)
{
int actualFormat;
char *propReturn;
unsigned long nitems, leftover;
Atom actualType;
Atom reqType = wmGD.xa_UTF8_STRING;
if (XGetWindowProperty (display, w, property, 0L, USHRT_MAX, False, reqType,
&actualType, &actualFormat, &nitems, &leftover,
(unsigned char **) &propReturn) != Success)
goto err;
if (!nitems) goto err;
if (actualType != reqType) goto err;
return propReturn;
err:
if (propReturn) XFree (propReturn);
return NULL;
}
/**
* @brief This function calls XChangeProperty to set the UTF8_STRING property.
*
* @param display
* @param w
* @param property
* @param s
*/
void SetUtf8String (Display *display, Window w, Atom property, const char *s)
{
size_t len;
if (!(s && s[0])) return;
len = strnlen (s, USHRT_MAX);
XChangeProperty (display, w, property, wmGD.xa_UTF8_STRING, 8,
PropModeReplace, (unsigned char *)s, len);
}

View file

@ -58,4 +58,6 @@ extern void SetCurrentWorkspaceProperty (WmScreenData *pSD);
extern void SetWorkspaceInfoProperty (WmWorkspaceData *pWS);
extern void DeleteWorkspaceInfoProperty (WmWorkspaceData *pWS);
extern char *WorkspacePropertyName (WmWorkspaceData *pWS);
extern char *GetUtf8String (Display *display, Window w, Atom property);
extern void SetUtf8String (Display *display, Window w, Atom property,
const char *s);

View file

@ -194,6 +194,7 @@
#define WmNworkspaceController "workspaceController"
#define WmNworkspacePresence "workspacePresence"
#define WmNworkspaceSwitch "workspaceSwitch"
#define WmNinstantTitle "instantTitle"
/* window manager client resource names: */
@ -356,6 +357,7 @@
#define WmCWorkspaceController "WorkspaceController"
#define WmCWorkspacePresence "WorkspacePresence"
#define WmCWorkspaceSwitch "WorkspaceSwitch"
#define WmCInstantTitle "InstantTitle"
/* window manager client resource names: */

View file

@ -492,6 +492,11 @@ FunctionTableEntry functionTable[] = {
DtWM_FUNC_OCCUPY_WS,
F_Remove,
ParseWmFuncNoArg},
{"f.rename", F_CONTEXT_ROOT|F_CONTEXT_ICONBOX|F_SUBCONTEXT_IB_WICON,
CRS_ANY,
DtWM_FUNC_OCCUPY_WS,
F_Rename,
ParseWmFuncNoArg},
{"f.resize", F_CONTEXT_ICON|F_CONTEXT_ROOT|
F_SUBCONTEXT_IB_IICON|F_SUBCONTEXT_IB_WICON,
CRS_ANY,

View file

@ -164,6 +164,7 @@ char *builtinSystemMenu = BUILTINSYSTEMMENU;
Maximize _x f.maximize\n\
Lower _L f.lower\n\
no-label f.separator\n\
\"Rename...\" _a f.rename\n\
\"Occupy Workspace...\" _O f.workspace_presence\n\
\"Occupy All Workspaces\" _A f.occupy_all\n\
\"Unoccupy Workspace\" _U f.remove\n\
@ -180,6 +181,7 @@ void InitBuiltinSystemMenu(void)
char *MinString = NULL;
char *MaxString = NULL;
char *LowString = NULL;
char *RenString = NULL;
char *OcpString = NULL;
char *OcaString = NULL;
char *RemString = NULL;
@ -299,6 +301,21 @@ void InitBuiltinSystemMenu(void)
if (DtwmBehavior)
{
if(gotItAll)
{
tmpString = ((char *)GETMESSAGE(62, 70, "Rename\\.\\.\\. _a f.rename"));
if ((RenString =
(char *)XtMalloc ((unsigned int)
(strlen(tmpString) + 1))) == NULL)
{
Warning (((char *)GETMESSAGE(62, 14, "Insufficient memory for local default menu.")));
gotItAll = False;
}
else
{
strcpy(RenString, tmpString);
}
}
if(gotItAll)
{
tmpString = ((char *)GETMESSAGE(62, 55, "Occupy\\ Workspace\\.\\.\\. _O f.workspace_presence"));
@ -382,8 +399,8 @@ void InitBuiltinSystemMenu(void)
SizString, MinString, MaxString, LowString);
if (DtwmBehavior)
{
snprintf(dsmtemp, sizeof(dsmtemp), "%s%s\n%s\n%s\n no-label f.separator\n",
dsm, OcpString, OcaString, RemString);
snprintf(dsmtemp, sizeof(dsmtemp), "%s%s\n%s\n%s\n%s\n no-label f.separator\n",
dsm, RenString, OcpString, OcaString, RemString);
strcpy(dsm, dsmtemp);
}
snprintf(dsmtemp, sizeof(dsmtemp), "%s%s\n}", dsm, CloString);
@ -422,6 +439,8 @@ void InitBuiltinSystemMenu(void)
XtFree(MaxString);
if (LowString != NULL)
XtFree(LowString);
if (RenString != NULL)
XtFree(RenString);
if (OcpString != NULL)
XtFree(OcpString);
if (OcaString != NULL)

View file

@ -221,6 +221,8 @@ InitClientData (Window clientWindow)
pCD->fullscreen = False;
pCD->monitorSizeIsSet = False;
pCD->instantTitle = NULL;
for (i = 0; i < STRETCH_COUNT; ++i) pCD->clientStretchWin[i] = (Window)0L;
return (pCD);
@ -2201,11 +2203,7 @@ WmICCCMToXmString (XTextProperty *wmNameProp)
void
ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime)
{
Atom actualType;
int actualFormat;
unsigned long nitems;
unsigned long leftover;
char *netWmNameProp;
char *netStr;
XTextProperty wmNameProp;
XmString title_xms = NULL;
Window win = pCD->client;
@ -2216,13 +2214,10 @@ ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime)
(!firstTime || hasWmName || hasNetWmName))
{
if ((!firstTime || hasNetWmName) &&
XGetWindowProperty (DISPLAY, win, wmGD.xa__NET_WM_NAME, 0L,
1000000L, False, wmGD.xa_UTF8_STRING,
&actualType, &actualFormat, &nitems, &leftover,
(unsigned char **) &netWmNameProp) == Success)
(netStr = GetUtf8String (DISPLAY, win, wmGD.xa__NET_WM_NAME)))
{
title_xms = XmStringCreateLocalized (netWmNameProp);
XFree (netWmNameProp);
title_xms = XmStringCreateLocalized (netStr);
XFree (netStr);
}
else if ((!firstTime || hasWmName) &&
XGetWMName(DISPLAY, win, &wmNameProp))
@ -2275,6 +2270,14 @@ ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime)
}
}
if (firstTime && pCD->instantTitle == NULL &&
HasProperty (pCD, wmGD.xa__NET_WM_VISIBLE_NAME) &&
(netStr = GetUtf8String (DISPLAY, win, wmGD.xa__NET_WM_VISIBLE_NAME)))
{
pCD->instantTitle = XmStringCreateLocalized (netStr);
XFree (netStr);
}
/*
* If this is a tear-off menu, then make sure title text is not clipped
*/
@ -2295,7 +2298,7 @@ ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime)
/*
* Calculations derived from GetTextBox() and GetFramePartInfo()
*/
minWidth = XmStringWidth(fontList, pCD->clientTitle) +
minWidth = XmStringWidth(fontList, CLIENT_DISPLAY_TITLE(pCD)) +
((pCD->dtwmBehaviors & DtWM_BEHAVIOR_SUBPANEL) ? 4 : 0) +
((decor & MWM_DECOR_MENU) ? boxdim : 0) +
((decor & MWM_DECOR_MINIMIZE) ? boxdim : 0) +
@ -2434,11 +2437,7 @@ FixSubpanelEmbeddedClientGeometry (ClientData *pCD)
void
ProcessWmIconTitle (ClientData *pCD, Boolean firstTime)
{
Atom actualType;
int actualFormat;
unsigned long nitems;
unsigned long leftover;
char *netWmIconNameProp;
char *netStr;
XTextProperty wmIconNameProp;
XmString icon_xms = NULL;
Window win = pCD->client;
@ -2450,13 +2449,10 @@ ProcessWmIconTitle (ClientData *pCD, Boolean firstTime)
(!firstTime || hasWmIconName || hasNetWmIconName))
{
if ((!firstTime || hasNetWmIconName) &&
XGetWindowProperty (DISPLAY, win, wmGD.xa__NET_WM_ICON_NAME, 0L,
1000000L, False, wmGD.xa_UTF8_STRING, &actualType,
&actualFormat, &nitems, &leftover,
(unsigned char **) &netWmIconNameProp) == Success)
(netStr = GetUtf8String (DISPLAY, win, wmGD.xa__NET_WM_ICON_NAME)))
{
icon_xms = XmStringCreateLocalized (netWmIconNameProp);
XFree (netWmIconNameProp);
icon_xms = XmStringCreateLocalized (netStr);
XFree (netStr);
}
else if ((!firstTime || hasWmIconName) &&
XGetWMIconName (DISPLAY, win, &wmIconNameProp))
@ -2498,6 +2494,14 @@ ProcessWmIconTitle (ClientData *pCD, Boolean firstTime)
}
}
if (firstTime && pCD->instantTitle == NULL &&
HasProperty (pCD, wmGD.xa__NET_WM_VISIBLE_ICON_NAME) &&
(netStr = GetUtf8String (DISPLAY, win,
wmGD.xa__NET_WM_VISIBLE_ICON_NAME)))
{
pCD->instantTitle = XmStringCreateLocalized (netStr);
XFree (netStr);
}
} /* END OF FUNCTION ProcessWmIconTitle */

View file

@ -44,6 +44,9 @@
#include "WmWrkspace.h"
#include <Dt/Session.h>
extern XtPointer _XmStringUngenerate(XmString, XmStringTag,
XmTextType, XmTextType);
typedef struct _ProxyClientInfo
{
int screen;
@ -72,6 +75,7 @@ static char *screenStr = "%s.screen";
static char *workspacesStr = "%s.workspaces";
static char *iconXPosStr = "%s.iconPos.x.%s";
static char *iconYPosStr = "%s.iconPos.y.%s";
static char *instantTitleStr = "%s.instantTitle";
/* Header for private database. */
static char *dbHeader = "\
@ -109,6 +113,9 @@ static void buildDBFileName(char [MAXPATHLEN], Boolean);
/* Get string of client's workspaces. */
static char *getClientWorkspaces(ClientData *);
/* Get string of client's instant title. */
static char *getClientInstantTitle(ClientData *);
/* List-of-clients utilities. */
static Boolean addClientToList(ClientData ***, int *, ClientData *);
static int clientWorkspaceCompare(const void *, const void *);
@ -292,6 +299,15 @@ getClientWorkspaces(ClientData *pCD)
return cwsP;
}
static char *
getClientInstantTitle(ClientData *pCD)
{
if (!pCD->instantTitle) return NULL;
return _XmStringUngenerate(pCD->instantTitle, NULL, XmCHARSET_TEXT,
XmCHARSET_TEXT);
}
static Boolean
addClientToList(ClientData ***cdList, int *nClients, ClientData *pCD)
{
@ -421,6 +437,13 @@ findXSMPClientDBMatch(ClientData *pCD, char **workSpaceNamesP)
{
*workSpaceNamesP = XtNewString(resourcePtr);
}
if ((resourcePtr = getXSMPResource(pCD, WMSAVE_INSTANT_TITLE,
instantTitleStr))
!= (char *)NULL)
{
pCD->instantTitle = XmStringCreateLocalized(resourcePtr);
}
}
/* Always return True for XSMP clients. */
@ -611,6 +634,13 @@ findProxyClientDBMatch(ClientData *pCD, char **workSpaceNamesP)
*workSpaceNamesP = XtNewString(resourcePtr);
}
if ((resourcePtr =
getClientResource(proxyClientID, instantTitleStr))
!= (char *)NULL)
{
pCD->instantTitle = XmStringCreateLocalized(resourcePtr);
}
return True;
}
}
@ -722,6 +752,18 @@ saveXSMPClient(FILE *fp, ClientData *pCD)
}
}
if (SAVE_RESOURCE(pCD, WMSAVE_INSTANT_TITLE))
{
char *title = getClientInstantTitle(pCD);
if (title)
{
fprintf(fp, instantTitleStr, clientID);
fprintf(fp, strArg, title);
XtFree(title);
}
}
return True;
}
@ -737,6 +779,7 @@ saveProxyClient(FILE *fp, ClientData *pCD, int clientIDNum)
int clientX, clientY;
unsigned int clientWd, clientHt;
char *clientWorkspaces;
char *instantTitle;
if (!getProxyClientInfo(pCD, &proxyClientInfo))
return False;
@ -806,6 +849,14 @@ saveProxyClient(FILE *fp, ClientData *pCD, int clientIDNum)
XtFree(clientWorkspaces);
}
instantTitle = getClientInstantTitle(pCD);
if (instantTitle)
{
fprintf(fp, instantTitleStr, clientID);
fprintf(fp, strArg, instantTitle);
XtFree(instantTitle);
}
return True;
}

View file

@ -49,6 +49,7 @@
#define WMSAVE_WORKSPACES (1L << 5)
#define WMSAVE_ICON_X (1L << 6)
#define WMSAVE_ICON_Y (1L << 7)
#define WMSAVE_INSTANT_TITLE (1L << 8)
extern void AddSMCallbacks(void);
extern void ResignFromSM(void);

View file

@ -1,4 +1,3 @@
$ "$TOG: dtwm.msg /main/6 1999/09/20 15:18:52 mgreess $";
$ *************************************<+>*************************************
@ -487,7 +486,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -629,6 +628,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
67 Key bindings %s not found, using builtin key bindings\n
68 Button bindings %s not found, using builtin button bindings\n
$ This item renames the title of a window
70 Rename\\.\\.\\. _a f.rename
$set 70
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
$ This entire set is written to an error file.
@ -784,6 +786,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
8 There is already an icon of this name.
9 Workspace Manager - Icon Action Error
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99
$ DO NOT TRANSLATE THESE MESSAGES
@ -793,4 +800,3 @@ $ These messages are used for the version information.
$quote "
1 "@(#)version_goes_here"
2 "\n@(#)_DtMessage catalog source $TOG: dtwm.msg /main/6 1999/09/20 15:18:52 mgreess $"

View file

@ -94,3 +94,6 @@ $ Dtwm*FrontPanel*lowResFontList
19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*:
$ Dtwm*icon*fontList
20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*instantTitleDialogShell.title
21 Rename

View file

@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList
$ Dtwm*icon*fontList
20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:"
$ Dtwm*instantTitleDialogShell.title
21 Umbenennen

View file

@ -595,7 +595,8 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, go to
$ an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -753,6 +754,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
68 "Button bindings %s not found, using builtin button bindings\n"
$ This item renames the title of a window
70 Umbenennen\\.\\.\\. _a f.rename
$set 70 Redefine set#
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
@ -973,6 +977,12 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
9 "Arbeitsbereichssteuerung - Fehler bei Symbolaktion"
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99 Redefine set#
$ DO NOT TRANSLATE THESE MESSAGES

View file

@ -94,3 +94,6 @@ $ Dtwm*FrontPanel*lowResFontList
19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*:
$ Dtwm*icon*fontList
20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*instantTitleDialogShell.title
21 Μετονομασία

View file

@ -1,4 +1,3 @@
$ "$TOG: dtwm.msg /main/6 1999/09/20 15:18:52 mgreess $";
$ *************************************<+>*************************************
@ -483,7 +482,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -625,6 +624,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
67 Key bindings %s not found, using builtin key bindings\n
68 Button bindings %s not found, using builtin button bindings\n
$ This item renames the title of a window
70 Μετονομασία\\.\\.\\. _a f.rename
$set 70
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
$ This entire set is written to an error file.
@ -780,6 +782,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
8 Υπάρχει ήδη ένα εικονίδιο με αυτό το όνομα.
9 Διαχειριστής επιφάνειας εργασίας - Σφάλμα ενέργειας εικονιδίου
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99
$ DO NOT TRANSLATE THESE MESSAGES

View file

@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList
$ Dtwm*icon*fontList
20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:"
$ Dtwm*instantTitleDialogShell.title
21 Renombrar

View file

@ -591,7 +591,8 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -749,6 +750,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
68 "No se han encontrado las asignaciones de botones %s, se utilizan las asignaciones de botones incorporadas\n"
$ This item renames the title of a window
70 Renombrar\\.\\.\\. _a f.rename
$set 70 Redefine set#
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
@ -967,6 +971,12 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
9 "Gestor de Espacios de Trabajos - Error Acción Icono"
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99 Redefine set#
$ DO NOT TRANSLATE THESE MESSAGES

View file

@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList
$ Dtwm*icon*fontList
20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:"
$ Dtwm*instantTitleDialogShell.title
21 Renommer

View file

@ -591,7 +591,8 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -749,6 +750,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
68 "Button bindings %s not found, using builtin button bindings\n"
$ This item renames the title of a window
70 Renommer\\.\\.\\. _a f.rename
$set 70 Redefine set#
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
@ -965,6 +969,12 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
9 "Gestionnaire de l'espace de travail - Erreur d'action sur icône"
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99 Redefine set#
$ DO NOT TRANSLATE THESE MESSAGES

View file

@ -94,3 +94,6 @@ $ Dtwm*FrontPanel*lowResFontList
19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*:
$ Dtwm*icon*fontList
20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*instantTitleDialogShell.title
21 Cambiare nome

View file

@ -1,4 +1,3 @@
$ "$TOG: dtwm.msg /main/6 1999/09/20 15:20:44 mgreess $";
$ *************************************<+>*************************************
@ -487,7 +486,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -629,6 +628,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
67 Key bindings %s not found, using builtin key bindings\n
68 Button bindings %s not found, using builtin button bindings\n
$ This item renames the title of a window
70 Cambiare\\ nome\\.\\.\\. _a f.rename
$set 70
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
$ This entire set is written to an error file.
@ -784,6 +786,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
8 Esiste già un'icona con il nome specificato.
9 Gestione dello spazio di lavoro - Errore nell'azione sull'icona
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99
$ DO NOT TRANSLATE THESE MESSAGES
@ -793,4 +800,3 @@ $ These messages are used for the version information.
$quote "
1 "@(#)version_goes_here"
2 "\n@(#)_DtMessage catalog source $TOG: dtwm.msg /main/6 1999/09/20 15:20:44 mgreess $"

View file

@ -88,3 +88,6 @@ $ Dtwm*FrontPanel*lowResFontList
19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*:
$ Dtwm*icon*fontList
20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*instantTitleDialogShell.title
21 名前の変更

View file

@ -1,4 +1,3 @@
$ "$TOG: dtwm.msg /main/7 1999/09/20 15:21:12 mgreess $";
$ *************************************<+>*************************************
@ -485,7 +484,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -627,6 +626,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
67 Key bindings %s not found, using builtin key bindings\n
68 Button bindings %s not found, using builtin button bindings\n
$ This item renames the title of a window
70 名前の変更\\.\\.\\. _a f.rename
$set 70
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
$ This entire set is written to an error file.
@ -783,6 +785,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
8 この名前のアイコンがすでに存在します。
9 ワークスペース・マネージャ - アイコン・アクション・エラー
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99
$ DO NOT TRANSLATE THESE MESSAGES
@ -792,4 +799,3 @@ $ These messages are used for the version information.
$quote "
1 "@(#)version_goes_here"
2 "\n@(#)_DtMessage catalog source $TOG: dtwm.msg /main/7 1999/09/20 15:21:12 mgreess $"

View file

@ -96,3 +96,6 @@ $ 19 -hp-batang-medium-r-normal--16-*-c-*:
$ Dtwm*icon*fontList
$ 20 -hp-batang-medium-r-normal--16-*-c-*:
20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*instantTitleDialogShell.title
21 이름 바꾸기

View file

@ -1,4 +1,3 @@
$ "$XConsortium: dtwm.msg /main/3 1995/11/08 13:19:16 rswiston $";
$ *************************************<+>*************************************
@ -462,6 +461,7 @@ $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -603,6 +603,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
67 키 묶기 %s을(를) 찾을 수 없습니다. 내장된 키 묶기를 사용합니다.
68 단추 묶기 %s을(를) 찾을 수 없습니다. 내장된 단추 묶기를 사용합니다.
$ This item renames the title of a window
70 이름\\ 바꾸기\\.\\.\\. _a f.rename
$set 70
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
$ This entire set is written to an error file.
@ -758,6 +761,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
8 이 이름의 아이콘이 이미 있습니다.
9 작업장 관리자 - 아이콘 활동 오류
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99
$ DO NOT TRANSLATE THESE MESSAGES
@ -767,4 +775,3 @@ $ These messages are used for the version information.
$quote "
1 "@(#)version_goes_here"
2 "\n@(#)_DtMessage catalog source $XConsortium: dtwm.msg /main/3 1995/11/08 13:19:16 rswiston $"

View file

@ -88,3 +88,6 @@ $ Dtwm*FrontPanel*lowResFontList
19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*:
$ Dtwm*icon*fontList
20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*instantTitleDialogShell.title
21 Byt namn

View file

@ -1,4 +1,3 @@
$ "$XConsortium: dtwm.msg /main/4 1995/12/08 09:39:59 rswiston $";
$ *************************************<+>*************************************
@ -462,7 +461,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -604,6 +603,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
67 Key bindings %s not found, using builtin key bindings\n
68 Button bindings %s not found, using builtin button bindings\n
$ This item renames the title of a window
70 Byt\\ namn\\.\\.\\. _a f.rename
$set 70
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
$ This entire set is written to an error file.
@ -759,6 +761,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
8 Det finns redan en ikon med detta namn.
9 Arbetsytehanterare - fel vid ikonfunktion
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99
$ DO NOT TRANSLATE THESE MESSAGES
@ -768,4 +775,3 @@ $ These messages are used for the version information.
$quote "
1 "@(#)version_goes_here"
2 "\n@(#)_DtMessage catalog source $XConsortium: dtwm.msg /main/4 1995/12/08 09:39:59 rswiston $"

View file

@ -88,3 +88,6 @@ $ Dtwm*FrontPanel*lowResFontList
19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*:
$ Dtwm*icon*fontList
20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*instantTitleDialogShell.title
21 换名

View file

@ -1,4 +1,3 @@
$ "$XConsortium: dtwm.msg /main/3 1995/11/08 13:53:27 rswiston $";
$ *************************************<+>*************************************
@ -463,7 +462,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -604,6 +603,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
67 Key bindings %s not found, using builtin key bindings\n
68 Button bindings %s not found, using builtin button bindings\n
$ This item renames the title of a window
70 换名\\.\\.\\. _a f.rename
$set 70
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
$ This entire set is written to an error file.
@ -760,6 +762,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
8 已经有一个此名字的图标了。
9 工作空间管理程序 - 图标动作出错
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99
$ DO NOT TRANSLATE THESE MESSAGES
@ -769,4 +776,3 @@ $ These messages are used for the version information.
$quote "
1 "@(#)version_goes_here"
2 "\n@(#)_DtMessage catalog source $XConsortium: dtwm.msg /main/3 1995/11/08 13:53:27 rswiston $"

View file

@ -88,3 +88,6 @@ $ Dtwm*FrontPanel*lowResFontList
19 -dt-interface user-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*icon*fontList
20 -dt-interface user-medium-r-normal-s*-*-*-*-*-*-*-*-*:
$ Dtwm*instantTitleDialogShell.title
21 改名

View file

@ -1,4 +1,3 @@
$ "$XConsortium: dtwm.msg /main/3 1995/11/08 14:09:06 rswiston $";
$ *************************************<+>*************************************
@ -462,7 +461,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used.
$ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68,
$ go to an errorlog and do NOT need to be localized.
$ Messages 30 and 39-47 are not used.
$ Only messages 32, 48-57 and 59 need to be localized.
$ Only messages 32, 48-57, 59 and 70 need to be localized.
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
@ -604,6 +603,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68.
67 Key bindings %s not found, using builtin key bindings\n
68 Button bindings %s not found, using builtin button bindings\n
$ This item renames the title of a window
70 改名\\.\\.\\. _a f.rename
$set 70
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c --
$ This entire set is written to an error file.
@ -759,6 +761,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9.
8 已有圖像使用該名稱。
9 工作空間管理者 - 圖像動作錯誤
$set 88
$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c --
$ This message goes to an error file.
$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE.
1 Unable to create instant title dialog.
$set 99
$ DO NOT TRANSLATE THESE MESSAGES
@ -768,4 +775,3 @@ $ These messages are used for the version information.
$quote "
1 "@(#)version_goes_here"
2 "\n@(#)_DtMessage catalog source $XConsortium: dtwm.msg /main/3 1995/11/08 14:09:06 rswiston $"