/*
* Motif
*
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
*
* 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 librararies and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/*
* HISTORY
*/
#ifdef REV_INFO
#ifndef lint
static char rcsid[] = "$XConsortium: wsmDebug.c /main/6 1995/07/14 09:48:58 drk $"
#endif
#endif
#include <stdio.h>
#include <Xm/Xm.h>
#include "wsm.h"
#include "wsmStruct.h"
#include "wsmDebug.h"
extern Space *space_list;
extern Space *current_space;
extern WorkWindow *work_windows;
void print_space_windows(
Space *s
);
/**********************************************************************/
/* DEBUG CODE */
/**********************************************************************/
void
print_window(WorkWindow *w_window)
{
#ifdef DEBUG2
int p;
PRINT("\nWINDOW %d = ",w_window->window);
for (p = 0; w_window->specifier_qlist[p] != NULLQUARK; p++)
PRINT("%s.", XrmQuarkToString(w_window->specifier_qlist[p]));
PRINT("\n");
if (w_window->mapped) PRINT("mapped\n");
else PRINT("unmapped\n");
#endif
}
void print_all_windows()
{
#ifdef DEBUG
WorkWindow *w_window = work_windows;
while (w_window != NULL)
{
PRINT("WINDOW 0x%X %s\n", w_window->window,
XrmQuarkToString(w_window->specifier_qlist[0]));
w_window = w_window->next;
}
#endif
}
void
print_space_windows(Space *s)
{
#ifdef DEBUG
WorkWindowList *w_list;
if (s!= NULL)
{
w_list = s->w_list;
while (w_list != NULL)
{
PRINT("SPACE %s WINDOW 0x%X %s\n", XrmQuarkToString(s->nameq),
w_list->work_win->window,
XrmQuarkToString(w_list->work_win->specifier_qlist[0]));
w_list = w_list->next;
}
}
else PRINT("NULL space\n");
#endif
}
void
print_all_values(XrmValue **attr_values,XrmQuarkList attrib_qlist,XrmQuarkList rooms_qlist, int num_attrib)
{
#ifdef DEBUG
int p,q;
for (p = 0; rooms_qlist[p] != NULLQUARK; p++)
{
for (q = 0; q < num_attrib; q++) {
if (attr_values[p][q].size != 0)
PRINT("%s %s : %s \n",
XrmQuarkToString(rooms_qlist[p]),
XrmQuarkToString(attrib_qlist[q]),
(char*)attr_values[p][q].addr);
else
{
PRINT("%s %s : NOT FOUND \n",
XrmQuarkToString(rooms_qlist[p]),
XrmQuarkToString(attrib_qlist[q]));
}
}
}
#endif
}
void
print_values(XrmValue *attr_values,XrmQuarkList attrib_qlist,XrmQuark room, int num_attrib)
{
#ifdef DEBUG2
int q;
for (q = 0; q < num_attrib; q++)
{
if (attr_values[q].size != 0)
PRINT(" v: %s %s : %s \n",
XrmQuarkToString(room),
XrmQuarkToString(attrib_qlist[q]),
(char*)attr_values[q].addr);
else
PRINT(" v: %s %s : NOT FOUND \n",
XrmQuarkToString(room),
XrmQuarkToString(attrib_qlist[q]));
}
#endif
}
void
print_win_data( WSMWinData *xrm_data_list, int num_xrm_data_list)
{
int p;
#ifdef DEBUG2
if (num_xrm_data_list == 0)
PRINT("D: no data \n");
else
{
for (p = 0; p < num_xrm_data_list; p++)
{
PRINT("D: %s %ld\n",
XrmQuarkToString(xrm_data_list[p].nameq),
xrm_data_list[p].data.value);
}
}
#endif
}
void
print_internal_win_data( WSMWinData *xrm_data_list, int num_xrm_data_list)
{
#ifdef DEBUG
int p;
for (p = 0; p < num_xrm_data_list; p++)
{
PRINT("I: %s %ld\n",
XrmQuarkToString(xrm_data_list[p].nameq),
xrm_data_list[p].data.value);
}
#endif
}
void
print_request(WSMRequest *request)
{
#ifdef DEBUG2
int p,q,i;
Window window;
WorkWindow *w_window;
PRINT("\nREQUEST:\n");
if (request->any.type == WSM_SET_STATE)
{
PRINT("num_win_info_list = %d\n",request->set_state.num_win_info_list);
for (p = 0; p < request->set_state.num_win_info_list; p++)
{
window = request->set_state.win_info_list[p].window;
w_window = GetWorkWindow(window);
PRINT(" %d ",window);
if ( _WSMGetConfigFormatType(window) == WSM_ICON_FMT)
PRINT(" ICON ");
else if ( _WSMGetConfigFormatType(window) == WSM_WINDOW_FMT)
PRINT(" WINDOW ");
else if ( _WSMGetConfigFormatType(window) == WSM_GLOBAL_FMT)
PRINT(" GLOBAL ");
if (w_window != NULL)
{
for (i = 0; w_window->specifier_qlist[i] != NULLQUARK; i++)
PRINT("%s.", XrmQuarkToString(w_window->specifier_qlist[i]));
}
PRINT("\n");
for (q = 0; q < request->set_state.win_info_list[p].num_data_list; q++)
{
PRINT(" %s %d\n",
XrmQuarkToString(request->set_state.win_info_list[p].data_list[q].nameq),
request->set_state.win_info_list[p].data_list[q].data.value);
}
}
}
PRINT("\n");
#endif
}
void
print_reply(WSMReply *reply)
{
#ifdef DEBUG2
int q;
PRINT("\n");
if (reply->any.type == WSM_REG_WINDOW)
{
PRINT("REPLY WSM_REG_WINDOW\n");
for (q = 0; q < reply->register_window.num_window_data; q++)
{
PRINT(" %s %d\n",
XrmQuarkToString(reply->register_window.window_data[q].nameq),
reply->register_window.window_data[q].data.value);
}
}
#endif
}
void
print_reply_start_state(WSMGetStateReply *get_state)
{
#ifdef DEBUG2
int i,j,p;
Window window;
WorkWindow *w_window;
PRINT("REPLY WSM_GET_STATE\n");
for (i = 0; i < get_state->num_win_info_list; i ++)
{
window = get_state->win_info_list[i].window;
w_window = GetWorkWindow(window);
/* PRINT(" 0x%X \n",window);*/
PRINT(" %d ",window);
if ( _WSMGetConfigFormatType(window) == WSM_ICON_FMT)
PRINT(" ICON ");
else if ( _WSMGetConfigFormatType(window) == WSM_WINDOW_FMT)
PRINT(" WINDOW ");
else if ( _WSMGetConfigFormatType(window) == WSM_GLOBAL_FMT)
PRINT(" GLOBAL ");
if (w_window != NULL)
{
for (p = 0; w_window->specifier_qlist[p] != NULLQUARK; p++)
PRINT("%s.", XrmQuarkToString(w_window->specifier_qlist[p]));
}
PRINT("\n");
for (j = 0; j < get_state->win_info_list[i].num_data_list; j++)
PRINT(" %s %ld\n",
XrmQuarkToString(get_state->win_info_list[i].data_list[j].nameq),
get_state->win_info_list[i].data_list[j].data.value);
}
#endif
}
void
PrintSpace(char *name)
{
#ifdef DEBUG
Space *s;
s = GetSpace(XrmStringToQuark(name));
if (s != NULL)
print_space_windows(s);
#endif
}
void PrintAllSpaces()
{
#ifdef DEBUG
Space *s = space_list;
while (s != NULL)
{
PRINT("SPACE: %s\n", s->name);
PRINT(" pixmap_name: %s\n", s->pixmap_name);
PRINT(" background: %s\n", s->background);
print_space_windows(s);
s = s->next;
}
#endif
}