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:
parent
8ed81a67a7
commit
e201ef0a7b
49 changed files with 927 additions and 64 deletions
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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#|
|
||||
|
||||
!####
|
||||
!#
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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: */
|
||||
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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 +
|
||||
|
|
|
@ -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;
|
||||
|
|
333
cde/programs/dtwm/WmInstantTitle.c
Normal file
333
cde/programs/dtwm/WmInstantTitle.c
Normal 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);
|
||||
}
|
32
cde/programs/dtwm/WmInstantTitle.h
Normal file
32
cde/programs/dtwm/WmInstantTitle.h
Normal 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
|
|
@ -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++)
|
||||
|
|
|
@ -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++;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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: */
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 $"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList
|
|||
$ Dtwm*icon*fontList
|
||||
|
||||
20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:"
|
||||
|
||||
$ Dtwm*instantTitleDialogShell.title
|
||||
21 Umbenennen
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 Μετονομασία
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList
|
|||
$ Dtwm*icon*fontList
|
||||
|
||||
20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:"
|
||||
|
||||
$ Dtwm*instantTitleDialogShell.title
|
||||
21 Renombrar
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList
|
|||
$ Dtwm*icon*fontList
|
||||
|
||||
20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:"
|
||||
|
||||
$ Dtwm*instantTitleDialogShell.title
|
||||
21 Renommer
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 $"
|
||||
|
||||
|
|
|
@ -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 名前の変更
|
||||
|
|
|
@ -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 $"
|
||||
|
||||
|
|
|
@ -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 이름 바꾸기
|
||||
|
|
|
@ -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 $"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 $"
|
||||
|
||||
|
|
|
@ -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 换名
|
||||
|
|
|
@ -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 $"
|
||||
|
||||
|
|
|
@ -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 改名
|
||||
|
|
|
@ -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 $"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue