Compare commits

..

2 Commits

Author SHA1 Message Date
heikki%netscape.com
a637f81f7f new project started
git-svn-id: svn://10.0.0.236/branches/mozilla@91184 18797224-902f-48f8-a5cc-f745e15eee43
2001-04-03 22:13:38 +00:00
(no author)
6cfadae5d1 This commit was manufactured by cvs2svn to create branch 'mozilla'.
git-svn-id: svn://10.0.0.236/branches/mozilla@8534 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-26 18:36:10 +00:00
1854 changed files with 102 additions and 489441 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,890 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
// npwplat.cpp
#include "stdafx.h"
#include <afxole.h>
#include <afxpriv.h>
#include <afxwin.h>
#include <errno.h>
#include <direct.h>
#include <stdlib.h>
#include <stdio.h>
#ifdef WIN32
#include <io.h>
#include <winver.h>
#else
#include <dos.h>
#include <ver.h>
#endif
#include "npwplat.h"
#include "nppg.h"
#include "plgindll.h"
#include "np.h"
#include "helper.h"
#if defined(OJI)
#include "jvmmgr.h"
#elif defined(JAVA)
#include "java.h"
#endif
#include "edt.h"
#include "npglue.h"
NPPMgtBlk* g_pRegisteredPluginList = NULL;
// Tests that the directory specified by "dir" exists.
// Returns true if it does.
static XP_Bool wfe_CheckDir(const char * dir)
{
int ret;
XP_StatStruct statinfo;
ret = _stat((char *) dir, &statinfo);
if(ret == -1)
return(FALSE);
return(TRUE);
}
// Get the name of the directory where plugins live. "csDirname" is where the
// name of the dir is written to, and the trailing slash is removed.
// It always returns NPERR_NO_ERROR, since the Nav had to be started to get
// here, and the plugin dir is under where Nav started from.
NPError wfe_GetPluginsDirectory(CString& csDirname)
{
char ca_default[_MAX_PATH];
::GetModuleFileName(AfxGetApp()->m_hInstance, ca_default, _MAX_PATH);
char *cp_lastslash = ::strrchr(ca_default, '\\');
*cp_lastslash = NULL;
csDirname = ca_default;
csDirname += "\\plugins";
return NPERR_NO_ERROR;
}
NPError wfe_GetJavaDirectory(CString& csDirname)
{
char ca_default[_MAX_PATH];
::GetModuleFileName(AfxGetApp()->m_hInstance, ca_default, _MAX_PATH);
char *cp_lastslash = ::strrchr(ca_default, '\\');
*cp_lastslash = NULL;
csDirname = ca_default;
csDirname += "\\java\\classes";
return NPERR_NO_ERROR;
}
// Fetches the "MIME type" string from the DLL VERSIONINFO structure.
// "pVersionInfo" is ptr to the VERSIONINFO data, and "pNPMgtBlk" is a handle
// to a plugin management data structure created during fe_RegisterPlugin().
// The string is copied from the VERSIONINFO data into the
// "pNPMgtBlk->szMIMEType" member.
// An error is returned if out of memory. The MIME type string IS
// required, so an error is returned if the string does not exist.
NPError wfe_GetPluginMIMEType(VS_FIXEDFILEINFO* pVersionInfo,
NPPMgtBlk* pNPMgtBlk)
{
// get the mime type of this plugin
static char szMimeTypeBlock[] = "StringFileInfo\\040904E4\\MIMEType";
void* lpBuffer = NULL;
UINT uValueSize = 0;
if(::VerQueryValue(pVersionInfo, szMimeTypeBlock,
&lpBuffer, &uValueSize) == 0) // couldn't find MIME type
return NPERR_GENERIC_ERROR;
pNPMgtBlk->szMIMEType = new char[uValueSize];
if(pNPMgtBlk->szMIMEType == NULL)
return NPERR_OUT_OF_MEMORY_ERROR;
strcpy(pNPMgtBlk->szMIMEType, (const char*)lpBuffer);
return NPERR_NO_ERROR;
}
// Fetches the "File Extents" string from the DLL VERSIONINFO structure.
// "pVersionInfo" is ptr to the VERSIONINFO data, and "pNPMgtBlk" is a handle
// to a plugin management data structure created during fe_RegisterPlugin().
// The string is copied from the VERSIONINFO data into the
// "pNPMgtBlk->szFileExtents" member.
// An error is returned if out of memory, but the extents string is not
// required, so it is not an error if the string does not exist.
NPError wfe_GetPluginExtents(VS_FIXEDFILEINFO* pVersionInfo,
NPPMgtBlk* pNPMgtBlk)
{ // get the file extent list of this plugin
pNPMgtBlk->szFileExtents = NULL;
static char szFileExtentsBlock[] = "StringFileInfo\\040904E4\\FileExtents";
void* lpBuffer = NULL;
UINT uValueSize = 0;
if(::VerQueryValue(pVersionInfo, szFileExtentsBlock,
&lpBuffer, &uValueSize) == 0)
// couldn't find file extent
return NPERR_NO_ERROR;
if((*((char*)lpBuffer) == '\0') || (uValueSize == 0)) // no extents
return NPERR_NO_ERROR;
// alloc char array
pNPMgtBlk->szFileExtents = new char[uValueSize];
if(pNPMgtBlk->szFileExtents == NULL)
return NPERR_OUT_OF_MEMORY_ERROR;
strcpy(pNPMgtBlk->szFileExtents, (const char*)lpBuffer);
return NPERR_NO_ERROR;
}
// Fetches the "File Open Template" string from the DLL VERSIONINFO structure.
// "pVersionInfo" is ptr to the VERSIONINFO data, and "pNPMgtBlk" is a handle
// to a plugin management data structure created during fe_RegisterPlugin().
// The string is copied from the VERSIONINFO data into the
// "pNPMgtBlk->szFileOpenName" member.
// An error is returned if out of memory, but the template string is not
// required, so it is not an error if the string does not exist.
NPError wfe_GetPluginFileOpenTemplate(VS_FIXEDFILEINFO* pVersionInfo,
NPPMgtBlk* pNPMgtBlk)
{ // get the file open template this plugin
pNPMgtBlk->szFileOpenName = NULL;
static char szFileOpenBlock[] = "StringFileInfo\\040904E4\\FileOpenName";
void* lpBuffer = NULL;
UINT uValueSize = 0;
if(::VerQueryValue(pVersionInfo, szFileOpenBlock,
&lpBuffer, &uValueSize) == 0)
// couldn't find file extent
return NPERR_NO_ERROR;
if((*((char*)lpBuffer) == '\0') || (uValueSize == 0)) // no extents
return NPERR_NO_ERROR;
// alloc char array
pNPMgtBlk->szFileOpenName = new char[uValueSize];
if(pNPMgtBlk->szFileOpenName == NULL)
return NPERR_OUT_OF_MEMORY_ERROR;
strcpy(pNPMgtBlk->szFileOpenName, (const char*)lpBuffer);
return NPERR_NO_ERROR;
}
// Fetches the plugin name and description from the resource info.
// Uses predefined version information strings
NPError wfe_GetPluginNameAndDescription(VS_FIXEDFILEINFO* pVersionInfo,
CString& strName,
CString& strDescription)
{
static char szNameBlock[] = "StringFileInfo\\040904E4\\ProductName";
static char szDescBlock[] = "StringFileInfo\\040904E4\\FileDescription";
void* lpBuffer = NULL;
UINT uValueSize = 0;
// Get the product name
if(::VerQueryValue(pVersionInfo, szNameBlock, &lpBuffer, &uValueSize) > 0)
strName = (LPSTR)lpBuffer;
// Get the file description
if(::VerQueryValue(pVersionInfo, szDescBlock, &lpBuffer, &uValueSize) > 0)
strDescription = (LPSTR)lpBuffer;
return NPERR_NO_ERROR;
}
// Loads plugin properties from the DLL VERSIONINFO data structure.
// MIME type and version are required, but file extents and string
// file open templates are optional. "pPluginFilespec" is a string
// containing the file name of a DLL. "pNPMgtBlk" is a handle to a
// plugin management data structure created during fe_RegisterPlugin().
// Returns an error if "pPluginFilespec" did not have the required MIME
// type and version fields.
//
// Also returns the plugin name and description
NPError wfe_GetPluginProperties(char* pPluginFilespec,
NPPMgtBlk* pNPMgtBlk,
CString& strPluginName,
CString& strPluginDescription)
{
// prepare to read the version info tags
DWORD dwHandle = NULL;
DWORD dwVerInfoSize = ::GetFileVersionInfoSize(pPluginFilespec, &dwHandle);
if(dwVerInfoSize == NULL)
return NPERR_GENERIC_ERROR;
VS_FIXEDFILEINFO* pVersionInfo =
(VS_FIXEDFILEINFO*)new char[dwVerInfoSize];
if(pVersionInfo == NULL)
return NPERR_OUT_OF_MEMORY_ERROR;
if(::GetFileVersionInfo(pPluginFilespec, dwHandle,
dwVerInfoSize, pVersionInfo) == 0)
{
delete [] (char*)pVersionInfo;
return NPERR_GENERIC_ERROR;
}
NPError result;
// get the mime type of this plugin
if((result = wfe_GetPluginMIMEType(pVersionInfo, pNPMgtBlk))
!= NPERR_NO_ERROR)
{
delete [] (char*)pVersionInfo;
return result;
}
// get the file extent list of this plugin
if((result = wfe_GetPluginExtents(pVersionInfo, pNPMgtBlk))
!= NPERR_NO_ERROR)
{
delete [] pNPMgtBlk->szMIMEType;
delete [] (char*)pVersionInfo;
return result;
}
// get the file type template string of this plugin
if((result = wfe_GetPluginFileOpenTemplate(pVersionInfo, pNPMgtBlk))
!= NPERR_NO_ERROR)
{
delete [] pNPMgtBlk->szFileExtents;
delete [] pNPMgtBlk->szMIMEType;
delete [] (char*)pVersionInfo;
return result;
}
// get the version of this plugin
void* lpBuffer = NULL;
UINT uValueSize = 0;
if(::VerQueryValue(pVersionInfo, "\\", &lpBuffer, &uValueSize) == 0)
{ // couldn't find versioninfo
delete [] pNPMgtBlk->szFileExtents;
delete [] pNPMgtBlk->szMIMEType;
delete [] (char*)pVersionInfo;
return NPERR_GENERIC_ERROR;
}
pNPMgtBlk->versionMS = ((VS_FIXEDFILEINFO*)lpBuffer)->dwProductVersionMS;
pNPMgtBlk->versionLS = ((VS_FIXEDFILEINFO*)lpBuffer)->dwProductVersionLS;
// get the plugin name and description. It's not fatal if these fail
wfe_GetPluginNameAndDescription(pVersionInfo, strPluginName, strPluginDescription);
delete [] (char*)pVersionInfo;
return NPERR_NO_ERROR;
}
// Given a file open filter, e.g. Text Documents(*.txt), extracts the
// description and returns a copy of it
static LPSTR
ExtractDescription(LPCSTR lpszFileOpenFilter)
{
ASSERT(lpszFileOpenFilter);
LPSTR lpszDescription = XP_STRDUP(lpszFileOpenFilter);
// Strip off an filter pattern at the end
LPSTR lpszPattern = strrchr(lpszDescription, '(');
if (lpszPattern)
*lpszPattern = '\0';
return lpszDescription;
}
// Registers one plugin. "pPluginFilespec" is a string containing the file
// name of a DLL.
// This function can be called more than once so a plugin which has copied
// into the plugins subdir AFTER the Nav has started can be registered
// and loaded.
// The DLL is a plugin candidate, and is qualified during
// this function, by checking the DLL VERSIONINFO data structure for a
// MIME type string. If this string is found successfully, the handle
// of the management block is used to register the plugin for its MIME type.
// The extents which are to be associated with this MIME type are also grokked
// from the VERSIONINFO data structure, once the candidate is accepted.
// This function also takes the opportunity to overrided any helper app, by
// setting a helper app data structure member to allow the plugin to handle
// the MIME type instead of the helper, (pApp->how_handle = HANDLE_VIA_PLUGIN).
// Returns an error if "pPluginFilespec" was not registered.
NPError fe_RegisterPlugin(char* pPluginFilespec)
{
CString strName, strDescription;
// initialize a new plugin list mgt block
NPPMgtBlk* pNPMgtBlk = new NPPMgtBlk;
if(pNPMgtBlk == NULL) // fatal, can't continue
return NPERR_OUT_OF_MEMORY_ERROR;
pNPMgtBlk->pPluginFuncs = NULL;
pNPMgtBlk->pLibrary = NULL;
pNPMgtBlk->uRefCount = 0;
pNPMgtBlk->next = NULL;
// determine the MIME type and version of this plugin
if(wfe_GetPluginProperties(pPluginFilespec, pNPMgtBlk, strName, strDescription) != NPERR_NO_ERROR)
{
delete pNPMgtBlk;
return NPERR_GENERIC_ERROR;
}
// if a plugin is already registered for this MIME type, return. this
// allows downloading and registering new plugins without exiting the nav
for(NPPMgtBlk* pListBlk = g_pRegisteredPluginList; pListBlk != NULL;
pListBlk = pListBlk->next) {
BOOL bSameFile =
(strcmp(pListBlk->pPluginFilename, pPluginFilespec) == 0);
BOOL bSameMIMEtype =
(strstr(pNPMgtBlk->szMIMEType, pListBlk->szMIMEType) != NULL);
if(bSameFile && bSameMIMEtype) {
// the plugin DLL's filename and the MIME type it's registering for
// are the same, don't reregister
delete pNPMgtBlk;
return NPERR_GENERIC_ERROR;
}
}
pNPMgtBlk->pPluginFilename = XP_STRDUP(pPluginFilespec);
if(pNPMgtBlk->pPluginFilename == NULL) // fatal, can't continue
{
delete pNPMgtBlk;
return NPERR_OUT_OF_MEMORY_ERROR;
}
// Register the plugin file with the XP plugin code
NPL_RegisterPluginFile(strName, pNPMgtBlk->pPluginFilename, strDescription,
pNPMgtBlk);
// Iterate through the filename extensions. These are a list which are
// delimited via the '|' character. The list of MIME Types,File Extents,
// and Open Names must all coordinate
char *pStartMIME, *pEndMIME, *pStartExt, *pEndExt, *pStartName, *pEndName;
pStartMIME = pNPMgtBlk->szMIMEType;
pStartExt = pNPMgtBlk->szFileExtents;
pStartName = pNPMgtBlk->szFileOpenName;
pEndMIME = strchr(pStartMIME ,'|');
while (pEndMIME) {
pEndExt = strchr(pStartExt,'|');
pEndName = strchr(pStartName,'|');
if (pEndMIME) *pEndMIME = 0;
else return NPERR_GENERIC_ERROR;
if (pEndExt) *pEndExt = 0;
else return NPERR_GENERIC_ERROR;
if (pEndName) *pEndName = 0;
else return NPERR_GENERIC_ERROR;
// Register the MIME type with the XP plugin code. We need to pass in
// a description. If there's a file open template specified, then use the
// description from there. Otherwise use the MIME type
LPSTR lpszDescription = NULL;
if (pStartName)
lpszDescription = ExtractDescription(pStartName);
NPL_RegisterPluginType(pStartMIME, (LPCSTR)pStartExt, lpszDescription ?
lpszDescription : pStartMIME, (void *)pStartName, pNPMgtBlk, TRUE);
if (lpszDescription)
XP_FREE(lpszDescription);
CHelperApp *pApp;
if(theApp.m_HelperListByType.Lookup(pStartMIME, (CObject *&)pApp)) {
// We've a match.
// Make sure the app is marked to handle the load
// via a plugin
pApp->how_handle = HANDLE_VIA_PLUGIN;
}
if ((pEndMIME+1) && (pEndExt+1) && (pEndName+1)) {
pStartMIME = pEndMIME+1;
pStartExt = pEndExt+1;
pStartName = pEndName+1;
}
pEndMIME = strchr(pStartMIME ,'|');
}
// Register the MIME type with the XP plugin code. We need to pass in
// a description. If there's a file open template specified, then use the
// description from there. Otherwise use the MIME type
LPSTR lpszDescription = NULL;
if (pStartName)
lpszDescription = ExtractDescription(pStartName);
NPL_RegisterPluginType(pStartMIME, (LPCSTR)pStartExt, lpszDescription ?
lpszDescription : pStartMIME, (void *)pStartName, pNPMgtBlk, TRUE);
if (lpszDescription)
XP_FREE(lpszDescription);
CHelperApp *pApp;
if(theApp.m_HelperListByType.Lookup(pStartMIME, (CObject *&)pApp)) {
// We've a match.
// Make sure the app is marked to handle the load
// via a plugin
pApp->how_handle = HANDLE_VIA_PLUGIN;
}
// insert the plugin mgt blk at the head of the list of registered plugins.
// this means they are listed in the reverse order from which they were
// created, which doesn't matter.
pNPMgtBlk->next = g_pRegisteredPluginList;
g_pRegisteredPluginList = pNPMgtBlk;
return NPERR_NO_ERROR;
}
// FE_RegisterPlugins is called from navigator main via npglue's NP_Init(). Finds all
// plugins and begins tracking them using a NPPMgtBlk. Uses the NPPMgtBlk
// block handle to register the plugin with the xp plugin glue. Looks
// in the directory under the netscape.exe dir, named "plugins" and all
// subdirectories in recursive way (see fe_RegisterPlugins). If the
// directory doesn't exist, no warning dialog is shown.
// There are no input or return vals.
void fe_RegisterPlugins(char* pszPluginDir)
{
CString csPluginSpec;
csPluginSpec = pszPluginDir;
#if defined(JAVA)
// add directory to the java path no matter what
LJ_AddToClassPath(pszPluginDir);
#endif
if (thePluginManager == NULL) {
static NS_DEFINE_IID(kIPluginManagerIID, NS_IPLUGINMANAGER_IID);
nsresult rslt = nsPluginManager::Create(NULL, kIPluginManagerIID, (void**)&thePluginManager);
// XXX Out of memory already? This function should return an error code!
PR_ASSERT(rslt == NS_OK);
// keep going anyway...
}
csPluginSpec += "\\*.*";
#ifndef _WIN32
_find_t fileinfo;
unsigned result = _dos_findfirst((LPSTR)((LPCSTR)csPluginSpec), _A_NORMAL | _A_SUBDIR, &fileinfo );
if (result == 0) {
result = _dos_findnext(&fileinfo); // skip "."
result = _dos_findnext(&fileinfo); // skip ".."
CString csFileSpec;
while(result == 0)
{
csFileSpec = pszPluginDir;
csFileSpec += "\\";
csFileSpec += fileinfo.name;
// we got a subdir, call recursively this function to load plugin
if (fileinfo.attrib & _A_SUBDIR ) {
fe_RegisterPlugins((LPSTR)(LPCSTR)csFileSpec);
}
else {
size_t len = strlen(fileinfo.name);
// it's a file, see if it can be a plugin file
if ( len > 6 && // at least "np.dll"
(fileinfo.name[0] == 'n' || fileinfo.name[0] == 'N') &&
(fileinfo.name[1] == 'p' || fileinfo.name[1] == 'P') &&
!_stricmp(fileinfo.name + len - 4, ".dll"))
fe_RegisterPlugin((LPSTR)((LPCSTR)csFileSpec));
#ifdef EDITOR
// If it's a cpXXX.zip file,register it as a composer plugin.
else if ( len > 6 && // at least cp.zip
(fileinfo.name[0] == 'c' || fileinfo.name[0] == 'C') &&
(fileinfo.name[1] == 'p' || fileinfo.name[1] == 'P') &&
(!_stricmp(fileinfo.name + len - 4, ".zip")
|| !_stricmp(fileinfo.name + len - 4, ".jar"))
)
EDT_RegisterPlugin((LPSTR)((LPCSTR)csFileSpec));
#endif /* EDITOR */
}
result = _dos_findnext(&fileinfo);
}
}
#else /* _WIN32 */
_finddata_t fileinfo;
unsigned handle = _findfirst((LPSTR)((LPCSTR)csPluginSpec), &fileinfo );
unsigned result = 0;
if (handle != -1) {
result = _findnext(handle, &fileinfo); // skip "."
result = _findnext(handle, &fileinfo); // skip ".."
CString csFileSpec;
while((result != -1) && (handle != -1))
{
csFileSpec = pszPluginDir;
csFileSpec += "\\";
csFileSpec += fileinfo.name;
// we got a subdir, call recursively this function to load plugin
if (fileinfo.attrib & _A_SUBDIR ) {
fe_RegisterPlugins((LPSTR)(LPCSTR)csFileSpec);
}
else {
size_t len = strlen(fileinfo.name);
// it's a file, see if it can be a plugin file
if ( len > 6 && // at least "np.dll"
(fileinfo.name[0] == 'n' || fileinfo.name[0] == 'N') &&
(fileinfo.name[1] == 'p' || fileinfo.name[1] == 'P') &&
!_stricmp(fileinfo.name + len - 4, ".dll"))
fe_RegisterPlugin((LPSTR)((LPCSTR)csFileSpec));
#ifdef EDITOR
// If it's a cpXXX.zip file, add it to the java class path.
else if ( len > 6 && // at least cp.zip
(fileinfo.name[0] == 'c' || fileinfo.name[0] == 'C') &&
(fileinfo.name[1] == 'p' || fileinfo.name[1] == 'P') &&
(!_stricmp(fileinfo.name + len - 4, ".zip")
|| !_stricmp(fileinfo.name + len - 4, ".jar"))
)
EDT_RegisterPlugin((LPSTR)((LPCSTR)csFileSpec));
#endif
}
result = _findnext(handle, &fileinfo);
}
_findclose(handle);
}
#endif /* _WIN32 */
}
// called from the navigator main, dispatch to the previous function
void FE_RegisterPlugins()
{
CString csPluginDir;
// get the main plugins directory and start the process
wfe_GetPluginsDirectory(csPluginDir);
fe_RegisterPlugins((LPSTR)(LPCSTR)csPluginDir);
CString csJavaDir;
wfe_GetJavaDirectory(csJavaDir);
JVM_AddToClassPath(csJavaDir);
}
// saves the current path in the variable passed. ppPathSave is the
// address of the ptr which stores the path string. returns out of memory
// error if allocation for the string returned by _getcwd() fails. returns
// generic error if the "one deep" stack is already full.
NPError wfe_PushPath(LPSTR *ppPathSave)
{
// only allow "one deep" stack
if(*ppPathSave != NULL)
return NPERR_GENERIC_ERROR;
// save the CWD
*ppPathSave = _getcwd(NULL, 0);
if(*ppPathSave == NULL)
return NPERR_OUT_OF_MEMORY_ERROR;
return NPERR_NO_ERROR;
}
// calculate the drive letter value for _chdrive(). ascii in, int out
int wfe_MapAsciiToDriveNum(char cAsciiNum)
{
int iDriveLetter = cAsciiNum;
if(islower(cAsciiNum))
iDriveLetter = _toupper(cAsciiNum);
// plus one because for _chdrive(), A = 1, B = 2, etc
return iDriveLetter - 'A' + 1;
}
// restores the path from the variable passed. pDirSave stores the pointer
// to the path string. returns an error if a path has never been pushed.
NPError wfe_PopPath(LPSTR pPathSave)
{
// only allows "one deep" stack
if(pPathSave == NULL)
return NPERR_GENERIC_ERROR;
// restore the drive
int chdriveErr = _chdrive(wfe_MapAsciiToDriveNum(pPathSave[0]));
// restore the CWD
int chdirErr = _chdir(pPathSave);
free(pPathSave);
return NPERR_NO_ERROR;
}
// Load a plugin dll. "pluginType" is a handle to a plugin management data
// structure created during FE_RegisterPlugins(). "pNavigatorFuncs" is
// a table of entry points into Navigator, which are the services provided
// by Navigator to plugins, such as requestread() and GetUrl(). These entry
// points are stored and called by the plugin when services are needed.
// The return val is a table of functions which are entry points to the
// newly loaded plugin, such as NewStream() and Write().
NPPluginFuncs* FE_LoadPlugin(void* pluginType, NPNetscapeFuncs* pNavigatorFuncs, np_handle* handle)
{
if(pluginType == NULL)
return NULL;
NPPMgtBlk* pNPMgtBlock = (NPPMgtBlk*)pluginType;
CString csPluginDir;
#ifdef OJI
char* szExplicitDLL = strrchr(pNPMgtBlock->pPluginFilename, '\\');
if( szExplicitDLL ) {
csPluginDir = pNPMgtBlock->pPluginFilename; // MFC copies the string
csPluginDir.SetAt( szExplicitDLL - pNPMgtBlock->pPluginFilename, '\0');
} else {
wfe_GetPluginsDirectory(csPluginDir);
}
#else
wfe_GetPluginsDirectory(csPluginDir);
#endif /* OJI */
LPSTR pPathSave = NULL; // storage for one dir spec
wfe_PushPath(&pPathSave); // save the current drive and dir
// change the default dir so that implib'd plugins won't fail
if(_chdir(csPluginDir) != 0) {
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
// must change the drive as well as the dir path
if(isalpha(csPluginDir[0]) && csPluginDir[1] == ':') {
if(_chdrive(wfe_MapAsciiToDriveNum(csPluginDir[0])) != 0) {
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
}
pNPMgtBlock->pLibrary = PR_LoadLibrary(pNPMgtBlock->pPluginFilename);
// the cross platform code should take care of the 16/32 bit issues
if(pNPMgtBlock->pLibrary == NULL)
return NULL;
nsFactoryProc nsGetFactory = (nsFactoryProc)
PR_FindSymbol(pNPMgtBlock->pLibrary, "NSGetFactory");
if (nsGetFactory != NULL) {
static NS_DEFINE_IID(kIPluginIID, NS_IPLUGIN_IID);
nsIPlugin* plugin = NULL;
nsresult res = nsGetFactory(kIPluginIID, (nsIFactory**)&plugin);
PR_ASSERT(thePluginManager != NULL);
if (res == NS_OK && plugin != NULL
&& plugin->Initialize((nsIPluginManager*)thePluginManager) == NS_OK) {
handle->userPlugin = plugin;
pNPMgtBlock->pPluginFuncs = (NPPluginFuncs*)-1; // something to say it's loaded, but != 0
#ifdef LATER // XXX coming soon...
// add the plugin directory if successful
JVM_AddToClassPathRecursively(csPluginDir);
#endif
}
else {
PR_UnloadLibrary(pNPMgtBlock->pLibrary);
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
}
else {
NP_GETENTRYPOINTS getentrypoints =
(NP_GETENTRYPOINTS)PR_FindSymbol(pNPMgtBlock->pLibrary, "NP_GetEntryPoints");
if(getentrypoints == NULL)
{
PR_UnloadLibrary(pNPMgtBlock->pLibrary);
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
if(pNPMgtBlock->pPluginFuncs == NULL)
{
pNPMgtBlock->pPluginFuncs = new NPPluginFuncs;
pNPMgtBlock->pPluginFuncs->size = sizeof NPPluginFuncs;
pNPMgtBlock->pPluginFuncs->javaClass = NULL;
if(pNPMgtBlock->pPluginFuncs == NULL) // fatal, can't continue
{
PR_UnloadLibrary(pNPMgtBlock->pLibrary);
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
}
if(getentrypoints(pNPMgtBlock->pPluginFuncs) != NPERR_NO_ERROR)
{
PR_UnloadLibrary(pNPMgtBlock->pLibrary);
delete pNPMgtBlock->pPluginFuncs;
pNPMgtBlock->pPluginFuncs = NULL;
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
// if the plugin's major ver level is lower than the Navigator's,
// then they are incompatible, and should return an error
if(HIBYTE(pNPMgtBlock->pPluginFuncs->version) < NP_VERSION_MAJOR)
{
PR_UnloadLibrary(pNPMgtBlock->pLibrary);
delete pNPMgtBlock->pPluginFuncs;
pNPMgtBlock->pPluginFuncs = NULL;
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
NP_PLUGININIT npinit = NULL;
// if this DLL is not already loaded, call its initialization entry point
if(pNPMgtBlock->uRefCount == 0) {
// the NP_Initialize entry point was misnamed as NP_PluginInit, early
// in plugin project development. Its correct name is documented
// now, and new developers expect it to work. However, I don't want
// to break the plugins already in the field, so I'll accept either
// name
npinit =
(NP_PLUGININIT)PR_FindSymbol(pNPMgtBlock->pLibrary, "NP_Initialize");
if(!npinit) {
npinit =
(NP_PLUGININIT)PR_FindSymbol(pNPMgtBlock->pLibrary, "NP_PluginInit");
}
}
if(npinit == NULL) {
PR_UnloadLibrary(pNPMgtBlock->pLibrary);
delete pNPMgtBlock->pPluginFuncs;
pNPMgtBlock->pPluginFuncs = NULL;
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
if (npinit(pNavigatorFuncs) != NPERR_NO_ERROR) {
PR_UnloadLibrary(pNPMgtBlock->pLibrary);
delete pNPMgtBlock->pPluginFuncs;
pNPMgtBlock->pPluginFuncs = NULL;
wfe_PopPath(pPathSave); // restore the path
return NULL;
}
}
pNPMgtBlock->uRefCount++; // all is well, remember it was loaded
// can't pop the path until plugins have been completely loaded/init'd
wfe_PopPath(pPathSave); // restore the path
return pNPMgtBlock->pPluginFuncs;
}
// Unloads a plugin DLL. "pluginType" is a handle to a plugin management data
// structure created during FE_RegisterPlugins(). There is no return val.
void FE_UnloadPlugin(void* pluginType, struct _np_handle* handle)
{
NPPMgtBlk* pNPMgtBlk = (NPPMgtBlk*)pluginType;
if (pNPMgtBlk == NULL)
return;
// XXX Note that we're double refcounting here. If we were rewriting this
// from scratch, we could eliminate this pNPMgtBlk and its refcount and just
// rely on the one in the userPlugin.
pNPMgtBlk->uRefCount--; // another one bites the dust
// if this DLL is the last one, call its shutdown entry point
if (pNPMgtBlk->uRefCount == 0) {
if (handle->userPlugin) {
nsrefcnt cnt = handle->userPlugin->Release();
PR_ASSERT(cnt == 0);
#if 0 // XXX later...
// remove the plugin directory if successful
JVM_RemoveFromClassPathRecursively(csPluginDir);
#endif
}
else {
// the NP_Shutdown entry point was misnamed as NP_PluginShutdown, early
// in plugin project development. Its correct name is documented
// now, and new developers expect it to work. However, I don't want
// to break the plugins already in the field, so I'll accept either
// name
NP_PLUGINSHUTDOWN npshutdown =
(NP_PLUGINSHUTDOWN)PR_FindSymbol(pNPMgtBlk->pLibrary, "NP_Shutdown");
if (!npshutdown) {
npshutdown =
(NP_PLUGINSHUTDOWN)PR_FindSymbol(pNPMgtBlk->pLibrary, "NP_PluginShutdown");
}
if (npshutdown != NULL) {
NPError result = npshutdown();
}
}
}
PR_UnloadLibrary(pNPMgtBlk->pLibrary);
pNPMgtBlk->pLibrary = NULL;
if (handle->userPlugin) {
PR_ASSERT(pNPMgtBlk->pPluginFuncs == (NPPluginFuncs*)-1); // set in FE_LoadPlugin
handle->userPlugin = NULL;
}
else {
delete pNPMgtBlk->pPluginFuncs;
}
pNPMgtBlk->pPluginFuncs = NULL;
}
// Removes a plugin DLL from memory, and frees its NPPMgtBlk management block.
// "pluginType" is a handle to the plugin management data structure created
// during FE_RegisterPlugins(). There is no return val.
void FE_UnregisterPlugin(void* pluginType)
{
NPPMgtBlk* pNPMgtBlk = (NPPMgtBlk*)pluginType;
if(pNPMgtBlk == NULL)
return;
if(pNPMgtBlk->pLibrary != NULL)
PR_UnloadLibrary(pNPMgtBlk->pLibrary);
delete [] (char*)*pNPMgtBlk->pPluginFilename;
delete [] pNPMgtBlk->pPluginFilename;
delete [] pNPMgtBlk->szMIMEType;
delete pNPMgtBlk->pPluginFuncs;
delete pNPMgtBlk;
}
// Provides the entry point used by xp plugin code, (NPGLUE.C), to control
// scroll bars. The inputs are obvious, and there is no return val.
void FE_ShowScrollBars(MWContext* pContext, XP_Bool show)
{
if(ABSTRACTCX(pContext)->IsWindowContext()) {
CPaneCX *pPaneCX = PANECX(pContext);
pPaneCX->ShowScrollBars(SB_BOTH, show);
}
}
#ifdef XP_WIN32
void*
WFE_BeginSetModuleState()
{
return AfxSetModuleState(AfxGetAppModuleState());
}
void
WFE_EndSetModuleState(void* pPrevState)
{
AfxSetModuleState((AFX_MODULE_STATE*)pPrevState);
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,86 +0,0 @@
#
# $XConsortium: C,v 1.4 91/06/29 20:01:32 xguest Exp $
#
# Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
# and Nippon Telegraph and Telephone Corporation
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the names of OMRON, NTT Software, NTT, and M.I.T.
# not be used in advertising or publicity pertaining to distribution of the
# software without specific, written prior permission. OMRON, NTT Software,
# NTT, and M.I.T. make no representations about the suitability of this
# software for any purpose. It is provided "as is" without express or
# implied warranty.
#
# OMRON, NTT SOFTWARE, NTT, AND M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD
# TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS, IN NO EVENT SHALL OMRON, NTT SOFTWARE, NTT, OR M.I.T. BE
# LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# Author: Li Yuhong OMRON Corporation
#
########################################################################
#
# Locale Name: C
#
XLC_ALL
C
END XLC_ALL
XLC_ENCODING
STRING
END XLC_ENCODING
XLC_FONTSET
#
# Definition Format: XLFD
#
# ASCII: ISO 8859-1
iso8859-1:GL
END XLC_FONTSET
XLC_CODESET
#
# type:CS0_mblen
#
L:1
#
# This mapping list was generated by program, DO NOT CHANGE IT!
#
#00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
#
{
C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0,
C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0, C0,
CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,
CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,
CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,
CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,
CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,
CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,CS0,
ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND,
ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND,
ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND,
ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND,
ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND,
ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND,
ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND,
ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND, ND,
}
#
# The following conversion list is hexdecimal.
#
# CS0: ASCII, ISO 8859-1
#
(20=20:7f)
END XLC_CODESET
#
# END OF FILE
#

View File

@@ -1,301 +0,0 @@
/***********************************************************
Copyright 1993 Interleaf, Inc.
Permission to use, copy, modify, and distribute this software
and its documentation for any purpose without fee is granted,
provided that the above copyright notice appear in all copies
and that both copyright notice and this permission notice appear
in supporting documentation, and that the name of Interleaf not
be used in advertising or publicly pertaining to distribution of
the software without specific written prior permission.
Interleaf makes no representation about the suitability of this
software for any purpose. It is provided "AS IS" without any
express or implied warranty.
******************************************************************/
Notes/Issues:
- The list menu is posted on the select button release. In order to
be like Windows, the menu would come up on the button press, and allow
the user to drag immediately, without letting go of the select button.
When I wrote the widget, I didn't have time to investigate getting this
drag to work. We would have to simulate the select press inside the
list, I imagine.
- No key pattern matching available.
- Lack of translation table functionality.
1. ComboBox Widget
1.1 Widget Class Name
ComboBox
1.2 Synopsis
#include "ComboBox.h"
widget = DtCreateComboBox(parent, name, arglist, num_args);
XtManageChild(widget);
1.3 Description
1.4 Resources
Property Type Init Access
-------- ---- ---- ------
XmNactivateCallback CallbackList NULL CSG
XmNalignment unsigned char XmALIGNMENT_BEGINNING CSG
XmNarrowSpacing Dimension 0 CSG
XmNarrowSize Dimension dynamic G
XmNarrowType unsigned char XmWINDOWS CSG
XmNcolumns Integer 20 CSG
XmNfocusCallback CallbackList NULL CSG
XmNitemCount Unsigned Integer 0 CSG
XmNitems XmStringTable NULL CSG
XmNlabelString XmString NULL CSG
XmNlist Widget NULL G
XmNlistFontList FontList NULL CSG
XmNlistMarginHeight Dimension 2 CSG
XmNlistMarginWidth Dimension 2 CSG
XmNlistSpacing Dimension 0 CSG
XmNlosingFocusCallback CallbackList NULL CSG
XmNmarginHeight Dimension 2 CSG
XmNmarginWidth Dimension 2 CSG
XmNmaxLength Unsigned Integer MAXINT CSG
XmNmenuPostCallback CallbackList NULL CSG
XmNorientation unsigned char XmRIGHT CSG
XmNpoppedUp Boolean FALSE G
XmNrecomputeSize Boolean TRUE CSG
XmNselectedItem XmString NULL CSG
XmNselectedPosition Unsigned Integer 0 CSG
XmNselectionCallback CallbackList NULL CSG
XmNtextField Widget NULL G
XmNtopItemPosition Unsigned Integer 1 CSG
XmNtype unsigned char XmDROP_DOWN_LIST_BOX CSG
XmNupdateLabel Boolean TRUE CSG
XmNvisibleItemCount Unsigned Integer 10 CSG
XmNactivateCallback:
List of callbacks called when the user does KActivate in
the text-field widget (when ComboBox is
XmDROP_DOWN_COMBO_BOX). See also XmTextFieldWidget.
XmNalignment:
Alignment of the text within the non-editable label.
This only gets used if XmNtype is XmDROP_DOWN_LIST_BOX.
Values are:
XmALIGNMENT_CENTER, XmALIGNMENT_BEGINNING,
XmALIGNMENT_END
See also XmLabelWidget
XmNarrowSpacing:
Amount of space between the arrow and the label or
text-field (in pixels).
XmNarrowSize:
Height/Width of arrow. This is not a settable resource;
it is based on the height of the ComboBox (which is
related to the font used).
XmNarrowType:
Type of down arrow displayed in the ComboBox. The legal
values are: XmWINDOWS, XmMOTIF
Xmcolumns:
This resource is passed on to the text-field widget.
See also XmTextFieldWidget.
XmNfocusCallback:
List of callbacks called when the text-field widget accepts
focus (when ComboBox is editable - XmDROP_DOWN_COMBO_BOX).
See also XmTextFieldWidget.
XmNitemCount:
Total number of items. This value must be the number of
items in XmNitems and must not be negative. It is
automatically updated by the widget whenever an item
is added or deleted.
XmNitems:
A list of xm-strings which will be displayed in the drop
down list box.
XmNlabelString:
This is the string that will be used in the label when the
resource XmNupdateLabel is FALSE. This string will remain
in the label as long as the XmNupdateLayout resource is
FALSE, even if the user picks a new item off the list.
XmNlist:
List widget (which is inside the popup). Gettable only.
XmNlistFontList:
This resource is passed on to the XmListWidget as the
XmNfontList resource.
See also XmListWidget.
XmNlistMarginHeight:
This resource is passed on to the XmListWidget as the
XmNlistMarginHeight resource.
See also XmListWidget.
XmNlistMarginWidth:
This resource is passed on to the XmListWidget as the
XmNlistMarginWidth resource.
See also XmListWidget.
XmNlistSpacing:
This resource is passed on to the XmListWidget as the
XmNlistSpacing resource.
See also XmListWidget.
XmNlosingFocusCallback:
List of callbacks called when the text-field widget loses
focus (when ComboBox is editable - XmDROP_DOWN_COMBO_BOX).
See also XmTextFieldWidget.
XmNmarginHeight:
Vertical distance from the beginning of the widget to the
start of the shadow. Used for making this widget
look like push-buttons, etc.
XmNmarginWidth:
Horizontal distance from the beginning of the widget to
the start of the shadow. Used for making this widget
look like push-buttons, etc.
XmNmaxLength:
Maximum length of the text string that can be entered into
a text-field widget. This resource is passed on to the
text-field (when ComboBox is editable - XmDROP_DOWN_COMBO_BOX).
See also XmTextFieldWidget.
XmNmenuPostCallback:
List of callbacks called right before the list menu
gets put on the screen.
XmNorientation:
Specifies location of down arrow. Legal values are:
XmLEFT, XmRIGHT
XmNpoppedUp:
Returns TRUE if the list menu is mapped; otherwise, FALSE.
XmNrecomputeSize:
If FALSE, the widget will not try to recompute a new
size if setting some other resource would cause it
to grow or shrink.
XmNselectedItem:
Item currently visible in list. Can be used to
change selected item. User must make copy of this
before modifying.
XmNselectedPosition:
Position of item, within scrolling list, currently
visible (in label or text-field). Can be used
to change selected item. Starts at 0.
XmNselectionCallback:
List of callbacks called when the user selects something
off the list (the list's XmNdefaultActionCallback or
XmNbrowseSelectionCallback callbacks).
See also XmListWidget.
XmNtextField:
text-field widget used within the ComboBox when
XmNtype is XmDROP_DOWN_COMBO_BOX.
XmNtopItemPosition:
This resource is passed on to the XmListWidget as the
XmNtopItemPosition resource.
See also XmListWidget.
XmNtype:
Type of combo-box create. Legal values are:
XmDROP_DOWN_LIST_BOX (non-editable, uses label)
XmDROP_DOWN_COMBO_BOX (editable, uses text-field)
XmNupdateLabel:
If TRUE, the contents of the label will change when the
user picks a new item off the list. If FALSE, the
label will not update, and the resource XmNlabelString
will be used as the label.
XmNvisibleItemCount:
This resource is passed on to the XmListWidget as the
XmNvisibleItemCount resource.
See also XmListWidget.
========================================================================
Functions available for ComboBox widget.
Widget
DtCreateComboBox(parent, name, args, num_args)
Widget parent;
char *name;
ArgList args;
int num_args;
{
}
Creates an instance of a ComboBox widget.
void
DtComboBoxAddItem(widget, item, position, unique)
DtComboBoxWidget widget;
XmString item;
int position;
Boolean unique;
Adds the given item to the list at the given position.
position is an integer specifying the position of the new item in the
list. A value of 1 makes the new item the first item in the list; a value
of 2 makes it the second item, and so on. A value of 0 (zero) makes the new
item the last item in the list.
If the unique parameter is TRUE, the item will only be added if it doesn't
already exist. If it is FALSE, the item will always be added.
See also, XmListSelectItem in the Motif reference manual.
void
DtComboBoxDeletePos(widget, position)
DtComboBoxWidget widget;
int position;
Deletes the item at the given position from the list.
position is an integer specifying the position of the item to delete
in the list. A value of 1 indicates that the first item in the list is
to be deleted. A value of 2 indicates the second item, etc. A value of 0
indicates that the last item is to be deleted. See also,
XmListSelectItem in the Motif reference manual.
void
DtComboBoxSetItem(widget, item)
DtComboBoxWidget widget;
XmString item;
Puts the given item into the combo-box label or text-field (this will be the
new value shown). The given item will be positioned at the top of the
list. This may cause problems if the viewing area is larger than the
number of items in the list. The new item will not be selected (use
DtComboBoxSelectItem).
See also, XmListSetItem in the Motif reference manual.
void
DtComboBoxSelectItem(combo, item)
DtComboBoxWidget combo;
XmString item;
Puts the given item into the combo-box label or text-field (this will be the
new value shown). The currently selected item in the list will be deselected
and the given item will be selected. See also, XmListSelectItem in the Motif
reference manual.
------------------------------------------------------------------------

File diff suppressed because it is too large Load Diff

View File

@@ -1,153 +0,0 @@
/*
* ComboBox.h, Interleaf, 16aug93 2:37pm Version 1.1.
*/
/***********************************************************
Copyright 1993 Interleaf, Inc.
Permission to use, copy, modify, and distribute this software
and its documentation for any purpose without fee is granted,
provided that the above copyright notice appear in all copies
and that both copyright notice and this permission notice appear
in supporting documentation, and that the name of Interleaf not
be used in advertising or publicly pertaining to distribution of
the software without specific written prior permission.
Interleaf makes no representation about the suitability of this
software for any purpose. It is provided "AS IS" without any
express or implied warranty.
******************************************************************/
/*
* (C) Copyright 1991,1992, 1993
* Interleaf, Inc.
* Nine Hillside Avenue, Waltham, MA 02154
*
* ComboBox.h:
*
* Public header file for DtComboBoxWidget.
*/
#ifndef _ComboBox_h
#define _ComboBox_h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef AA
#define AA(args) ()
#endif
#include <Xm/Xm.h>
#ifndef XmNarrowSize
#define XmNarrowSize "arrowSize"
#endif
#ifndef XmNarrowSpacing
#define XmNarrowSpacing "arrowSpacing"
#endif
#define XmNarrowType "arrowType"
#ifndef XmNlist
#define XmNlist "list"
#endif
#define XmNlistFontList "listFontList"
#define XmNpoppedUp "poppedUp"
#ifndef XmNselectedPosition
#define XmNselectedPosition "selectedPosition"
#endif
#ifndef XmNselectedItem
#define XmNselectedItem "selectedItem"
#endif
#ifndef XmNtextField
#define XmNtextField "textField"
#endif
#define XmNtype "type"
#define XmNupdateLabel "updateLabel"
#define XmNmoveSelectedItemUp "moveSelectedItemUp"
#define XmNnoCallbackForArrow "noCallbackForArrow"
#ifndef XmCArrowSize
#define XmCArrowSize "ArrowSize"
#endif
#ifndef XmCArrowSpacing
#define XmCArrowSpacing "ArrowSpacing"
#endif
#define XmCArrowType "ArrowType"
#define XmCHorizontalSpacing "HorizontalSpacing"
#ifndef XmCList
#define XmCList "List"
#endif
#define XmCListFontList "ListFontList"
#define XmCPoppedUp "PoppedUp"
#ifndef XmCSelectedPosition
#define XmCSelectedPosition "SelectedPosition"
#endif
#ifndef XmCSelectedItem
#define XmCSelectedItem "SelectedItem"
#endif
#define XmCType "Type"
#ifndef XmCTextField
#define XmCTextField "TextField"
#endif
#define XmCUpdateLabel "UpdateLabel"
#define XmCVerticalSpacing "VerticalSpacing"
#define XmCMoveSelectedItemUp "MoveSelectedItemUp"
#define XmCNoCallbackForArrow "NoCallbackForArrow"
#define XmRArrowType "ArrowType"
#define XmRType "Type"
/* XmNorientation defines */
#define XmLEFT 0
#define XmRIGHT 1
/* ArrowType defines */
#define XmMOTIF 0
#define XmWINDOWS 1
/* XmNtype defines */
#define XmDROP_DOWN_LIST_BOX 0
#define XmDROP_DOWN_COMBO_BOX 1
/* ComboBox callback info */
#ifndef XmNselectionCallback
#define XmNselectionCallback "selectionCallback"
#endif
#define XmNmenuPostCallback "menuPostCallback"
#define XmCR_SELECT 128 /* Large #, so no collisions with XM */
#define XmCR_MENU_POST 129 /* Large #, so no collisions with XM */
typedef struct {
int reason;
XEvent *event;
XmString item_or_text;
int item_position;
} DtComboBoxCallbackStruct;
extern WidgetClass dtComboBoxWidgetClass;
typedef struct _DtComboBoxClassRec *DtComboBoxWidgetClass;
typedef struct _DtComboBoxRec *DtComboBoxWidget;
/*
* External functions which manipulate the ComboBox list of items.
*/
extern Widget DtCreateComboBox (Widget parent, char *name,
Arg *arglist, int num_args);
extern void DtComboBoxAddItem (Widget combo, XmString item,
int pos, Boolean unique);
extern void DtComboBoxDeletePos (Widget combo, int pos);
extern void DtComboBoxDeleteAllItems(Widget combo);
extern void DtComboBoxSetItem (Widget combo, XmString item);
extern void DtComboBoxSelectItem (Widget combo, XmString item);
/* xfe additions */
extern void DtComboBoxAddItemSelected (Widget combo, XmString item, int pos, Boolean unique);
extern void DtComboBoxDeleteAllItems (Widget combo);
#ifdef __cplusplus
};
#endif
#endif /* _ComboBox_h */

View File

@@ -1,186 +0,0 @@
/*
* ComboBoxP.h, Interleaf, 16aug93 2:37pm Version 1.1.
*/
/***********************************************************
Copyright 1993 Interleaf, Inc.
Permission to use, copy, modify, and distribute this software
and its documentation for any purpose without fee is granted,
provided that the above copyright notice appear in all copies
and that both copyright notice and this permission notice appear
in supporting documentation, and that the name of Interleaf not
be used in advertising or publicly pertaining to distribution of
the software without specific written prior permission.
Interleaf makes no representation about the suitability of this
software for any purpose. It is provided "AS IS" without any
express or implied warranty.
******************************************************************/
/*
* (C) Copyright 1991,1992, 1993
* Interleaf, Inc.
* Nine Hillside Avenue, Waltham, MA 02154
*
* ComboBoxP.h:
*
* Private header file for DtComboBoxWidget.
*/
#ifndef _ComboBoxP_h
#define _ComboBoxP_h
#ifndef AA
#define AA(args) ()
#endif
#include <X11/IntrinsicP.h>
#include <X11/ShellP.h>
#include <Xm/DrawnB.h>
#include <Xm/ArrowB.h>
#include <Xm/TextFP.h>
#include <Xm/Label.h>
#include <Xm/Frame.h>
#include <Xm/ListP.h>
#include <Xm/Separator.h>
#include <Xm/ScrolledWP.h>
#include <Xm/ScrollBarP.h>
#include <Xm/ManagerP.h>
#include "ComboBox.h"
/*
* External definitions of syn_resources for our list widget.
*/
#define SYN_RESOURCE_AA AA((Widget w, int resource_offset, XtArgVal *value))
extern void _DtComboBoxGetArrowSize SYN_RESOURCE_AA;
extern void _DtComboBoxGetLabelString SYN_RESOURCE_AA;
extern void _DtComboBoxGetListItemCount SYN_RESOURCE_AA;
extern void _DtComboBoxGetListItems SYN_RESOURCE_AA;
extern void _DtComboBoxGetListFontList SYN_RESOURCE_AA;
extern void _DtComboBoxGetListMarginHeight SYN_RESOURCE_AA;
extern void _DtComboBoxGetListMarginWidth SYN_RESOURCE_AA;
extern void _DtComboBoxGetListSpacing SYN_RESOURCE_AA;
extern void _DtComboBoxGetListTopItemPosition SYN_RESOURCE_AA;
extern void _DtComboBoxGetListVisibleItemCount SYN_RESOURCE_AA;
#define ARROW_MULT .45
#define ARROW_MIN 13
#define MARGIN 2
#define LABEL_PADDING 2
#define LABEL_SHADOW 2
#define TEXT_FIELD_SHADOW 1
/*
* Class Records
*/
typedef struct {
Boolean junk; /* Need something */
} DtComboBoxClassPart;
typedef struct _DtComboBoxClassRec {
CoreClassPart core_class;
CompositeClassPart composite_class;
ConstraintClassPart constraint_class;
XmManagerClassPart manager_class;
DtComboBoxClassPart combo_box_class;
} DtComboBoxClassRec;
extern DtComboBoxClassRec dtComboBoxClassRec;
/*
* Instance Record.
*/
typedef struct _DtComboBoxPart {
/* Private data */
Widget arrow;
Widget shell;
Widget frame;
Widget label;
Widget sep;
Dimension old_width;
Dimension old_height;
Dimension label_max_length;
Dimension label_max_height;
/*
* max_shell_width is the width that is needed to hold the
* list if the longest item was visible. We then use this
* width to figure out if the shell is not wide enough,
* when it gets popped on the screen. This is needed in case the
* combo-box resizes, or if items changes (list will resize).
* Sometimes we change the size of the shell to fit on the screen, or
* to make it at least as large as the combo_box. The next time we pop
* the shell up the size may be different; therefore, we set the shell
* size to the maximum everytime it gets popped up, then we will
* make adjustments, only if needed.
* This value gets saved every time the user updates XmNitems.
*/
Dimension max_shell_width;
Dimension max_shell_height;
/* ComboBox specific resources */
XtCallbackList activate_callback;
unsigned char alignment;
Dimension arrow_size;
Dimension arrow_spacing;
unsigned char arrow_type;
short text_columns;
XtCallbackList focus_callback;
Dimension horizontal_spacing;
int item_count;
XmStringTable items;
XmString label_string;
Widget list;
XmFontList list_font_list;
Dimension list_margin_height;
Dimension list_margin_width;
Dimension list_spacing;
XtCallbackList losing_focus_callback;
Dimension margin_height;
Dimension margin_width;
unsigned int text_max_length;
XtCallbackList menu_post_callback;
unsigned char orientation;
Boolean popped_up;
Boolean recompute_size;
XmString selected_item;
int selected_position;
XtCallbackList selection_callback;
Widget text;
int top_item_position;
unsigned char type;
Boolean update_label;
Dimension vertical_spacing;
int visible_item_count;
Boolean move_selecteditem_up;
Boolean no_callback_for_arrow;
} DtComboBoxPart;
typedef struct _DtComboBoxRec {
CorePart core;
CompositePart composite;
ConstraintPart constraint;
XmManagerPart manager;
DtComboBoxPart combo_box;
} DtComboBoxRec;
/*
* Error defines.
*/
#define COMBO_ALIGNMENT "DtComboButtonWidget: Invalid alignment resource (defaulting to XmALIGNMENT_CENTER)."
#define COMBO_MARGIN_HEIGHT "DtComboButtonWidget: Invalid marginHeight resource (defaulting to 2)."
#define COMBO_MARGIN_WIDTH "DtComboButtonWidget: Invalid marginHeight resource (defaulting to 2)."
#define COMBO_HORIZONTAL_SPACING "DtComboButtonWidget: Invalid horizontalSpacing resource (defaulting to 0)."
#define COMBO_VERTICAL_SPACING "DtComboButtonWidget: Invalid verticalSpacing resource (defaulting to 0)."
#define COMBO_ORIENTATION "DtComboButtonWidget: Invalid orientation resource (defaulting to XmRIGHT)."
#define COMBO_ITEM_COUNT "DtComboButtonWidget: Invalid itemCount resource (defaulting to 0)."
#define COMBO_VISIBLE_ITEM "DtComboButtonWidget: Invalid selectedPosition resource (defaulting to 0)."
#define COMBO_TEXT "DtComboButtonWidget: Unable to set textField resource."
#define COMBO_ITEM_COUNT "DtComboButtonWidget: Invalid itemCount resource (defaulting to 0)."
#define COMBO_SET_ITEM "DtComboBoxWidget: Unable to find item to set (DtComboBoxSetItem)."
#define COMBO_SELECT_ITEM "DtComboBoxWidget: Unable to find item to select (XmComboBoxSelectItem)."
#endif /* _XmComboBoxP_h */

View File

@@ -1,25 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH = ../../..
MODULE = DtWidgets
LIBRARY_NAME = DtWidgets
CSRCS = ComboBox.c
include $(DEPTH)/config/rules.mk

View File

@@ -1,30 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
DEPTH = ../../..
topsrcdir = @top_srcdir@
VPATH = @srcdir@
srcdir = @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULE = DtWidgets
LIBRARY_NAME = DtWidgets
CSRCS = ComboBox.c
include $(topsrcdir)/config/rules.mk

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,31 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# The following source code is part of the Microline Widget Library.
# The Microline widget library is made available to Mozilla developers
# under the Netscape Public License (NPL) by Neuron Data. To learn
# more about Neuron Data, please visit the Neuron Data Home Page at
# http://www.neurondata.com.
#
DEPTH = ../../..
DIRS = XmL
include $(DEPTH)/config/rules.mk

View File

@@ -1,36 +0,0 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# The following source code is part of the Microline Widget Library.
# The Microline widget library is made available to Mozilla developers
# under the Netscape Public License (NPL) by Neuron Data. To learn
# more about Neuron Data, please visit the Neuron Data Home Page at
# http://www.neurondata.com.
#
DEPTH = ../../..
topsrcdir = @top_srcdir@
VPATH = @srcdir@
srcdir = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = XmL
include $(topsrcdir)/config/rules.mk

File diff suppressed because it is too large Load Diff

View File

@@ -1,57 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLFolderH
#define XmLFolderH
#include <XmL/XmL.h>
#ifdef XmL_CPP
extern "C" {
#endif
extern WidgetClass xmlFolderWidgetClass;
typedef struct _XmLFolderClassRec *XmLFolderWidgetClass;
typedef struct _XmLFolderRec *XmLFolderWidget;
#define XmLIsFolder(w) XtIsSubclass((w), xmlFolderWidgetClass)
Widget XmLCreateFolder(Widget parent, char *name, ArgList arglist,
Cardinal argcount);
Widget XmLFolderAddBitmapTab(Widget w, XmString string,
char *bitmapBits, int bitmapWidth, int bitmapHeight);
Widget XmLFolderAddBitmapTabForm(Widget w, XmString string,
char *bitmapBits, int bitmapWidth, int bitmapHeight);
Widget XmLFolderAddTab(Widget w, XmString string);
Widget XmLFolderAddTabFromClass(Widget w, XmString string);
Widget XmLFolderAddTabForm(Widget w, XmString string);
void XmLFolderSetActiveTab(Widget w, int position, Boolean notify);
#ifdef XmL_CPP
}
#endif
#endif

View File

@@ -1,113 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLFolderPH
#define XmLFolderPH
#include <Xm/XmP.h>
#ifdef MOTIF11
#else
#include <Xm/ManagerP.h>
#endif
#include "Folder.h"
typedef struct _XmLFolderPart
{
int debugLevel;
Boolean serverDrawsArcsLarge;
unsigned char cornerStyle, tabPlacement, resizePolicy;
Boolean allowRotate, autoSelect;
GC gc;
Pixel inactiveBg, inactiveFg, blankBg;
Pixmap blankPix;
WidgetList tabs;
int tabCount, tabAllocCount;
Dimension marginWidth, marginHeight, spacing;
Dimension cornerDimension, highlightThickness;
Dimension pixmapMargin;
Dimension tabHeight, tabWidth, tabBarHeight;
int tabsPerRow, activeRow;
XtTranslations primTrans;
Widget focusW, activeW;
int activeTab;
char allowLayout;
XtCallbackList activateCallback;
XmFontList fontList;
WidgetClass tabWidgetClass;
} XmLFolderPart;
typedef struct _XmLFolderRec
{
CorePart core;
CompositePart composite;
ConstraintPart constraint;
XmManagerPart manager;
XmLFolderPart folder;
} XmLFolderRec;
typedef struct _XmLFolderClassPart
{
int unused;
} XmLFolderClassPart;
typedef struct _XmLFolderClassRec
{
CoreClassPart core_class;
CompositeClassPart composite_class;
ConstraintClassPart constraint_class;
XmManagerClassPart manager_class;
XmLFolderClassPart folder_class;
} XmLFolderClassRec;
extern XmLFolderClassRec xmlFolderClassRec;
typedef struct _XmLFolderConstraintPart
{
Position x, y;
Dimension width, height;
Dimension maxPixWidth, maxPixHeight;
Dimension pixWidth, pixHeight;
Dimension inactPixWidth, inactPixHeight;
int row;
Boolean firstInRow;
Boolean freePix;
Pixmap pix, inactPix;
char *managedName;
Widget managedW;
} XmLFolderConstraintPart;
typedef struct _XmLFolderConstraintRec
{
XmManagerConstraintPart manager;
XmLFolderConstraintPart folder;
} XmLFolderConstraintRec, *XmLFolderConstraintPtr;
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,147 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLGridH
#define XmLGridH
#include <XmL/XmL.h>
#include <stdio.h>
#ifdef XmL_CPP
extern "C" {
#endif
extern WidgetClass xmlGridWidgetClass;
typedef struct _XmLGridClassRec *XmLGridWidgetClass;
typedef struct _XmLGridRec *XmLGridWidget;
typedef struct _XmLGridRowRec *XmLGridRow;
typedef struct _XmLGridColumnRec *XmLGridColumn;
typedef struct _XmLGridCellRec *XmLGridCell;
#define XmLIsGrid(w) XtIsSubclass((w), xmlGridWidgetClass)
Widget XmLCreateGrid(Widget parent, char *name, ArgList arglist,
Cardinal argcount);
void XmLGridAddColumns(Widget w, unsigned char type, int position, int count);
void XmLGridAddRows(Widget w, unsigned char type, int position, int count);
Boolean XmLGridColumnIsVisible(Widget w, int column);
Boolean XmLGridCopyPos(Widget w, Time time, unsigned char rowType, int row,
unsigned char columnType, int column, int nrow, int ncolumn);
Boolean XmLGridCopySelected(Widget w, Time time);
void XmLGridDeleteAllColumns(Widget w, unsigned char type);
void XmLGridDeleteAllRows(Widget w, unsigned char type);
void XmLGridDeleteColumns(Widget w, unsigned char type, int position,
int count);
void XmLGridDeleteRows(Widget w, unsigned char type, int position, int count);
void XmLGridDeselectAllCells(Widget w, Boolean notify);
void XmLGridDeselectAllColumns(Widget w, Boolean notify);
void XmLGridDeselectAllRows(Widget w, Boolean notify);
void XmLGridDeselectCell(Widget w, int row, int column, Boolean notify);
void XmLGridDeselectColumn(Widget w, int column, Boolean notify);
void XmLGridDeselectRow(Widget w, int row, Boolean notify);
int XmLGridEditBegin(Widget w, Boolean insert, int row, int column);
void XmLGridEditCancel(Widget w);
void XmLGridEditComplete(Widget w);
XmLGridColumn XmLGridGetColumn(Widget w, unsigned char columnType, int column);
void XmLGridGetFocus(Widget w, int *row, int *column, Boolean *focusIn);
XmLGridRow XmLGridGetRow(Widget w, unsigned char rowType, int row);
int XmLGridGetSelectedCellCount(Widget w);
int XmLGridGetSelectedCells(Widget w, int *rowPositions,
int *columnPositions, int count);
int XmLGridGetSelectedColumnCount(Widget w);
int XmLGridGetSelectedColumns(Widget w, int *positions, int count);
int XmLGridGetSelectedRow(Widget w);
int XmLGridGetSelectedRowCount(Widget w);
int XmLGridGetSelectedRows(Widget w, int *positions, int count);
void XmLGridMoveColumns(Widget w, int newPosition, int position, int count);
void XmLGridMoveRows(Widget w, int newPosition, int position, int count);
Boolean XmLGridPaste(Widget w);
Boolean XmLGridPastePos(Widget w, unsigned char rowType, int row,
unsigned char columnType, int column);
int XmLGridRead(Widget w, FILE *file, int format, char delimiter);
int XmLGridReadPos(Widget w, FILE *file, int format, char delimiter,
unsigned char rowType, int row, unsigned char columnType, int column);
void XmLGridRedrawAll(Widget w);
void XmLGridRedrawCell(Widget w, unsigned char rowType, int row,
unsigned char columnType, int column);
void XmLGridRedrawColumn(Widget w, unsigned char type, int column);
void XmLGridRedrawRow(Widget w, unsigned char type, int row);
void XmLGridReorderColumns(Widget w, int *newPositions,
int position, int count);
void XmLGridReorderRows(Widget w, int *newPositions,
int position, int count);
int XmLGridRowColumnToXY(Widget w, unsigned char rowType, int row,
unsigned char columnType, int column, Boolean clipped, XRectangle *rect);
Boolean XmLGridRowIsVisible(Widget w, int row);
void XmLGridSelectAllCells(Widget w, Boolean notify);
void XmLGridSelectAllColumns(Widget w, Boolean notify);
void XmLGridSelectAllRows(Widget w, Boolean notify);
void XmLGridSelectCell(Widget w, int row, int column, Boolean notify);
void XmLGridSelectColumn(Widget w, int column, Boolean notify);
void XmLGridSelectRow(Widget w, int row, Boolean notify);
int XmLGridSetFocus(Widget w, int row, int column);
int XmLGridSetStrings(Widget w, char *data);
int XmLGridSetStringsPos(Widget w, unsigned char rowType, int row,
unsigned char columnType, int column, char *data);
int XmLGridWrite(Widget w, FILE *file, int format, char delimiter,
Boolean skipHidden);
int XmLGridWritePos(Widget w, FILE *file, int format, char delimiter,
Boolean skipHidden, unsigned char rowType, int row,
unsigned char columnType, int column, int nrow, int ncolumn);
int XmLGridXYToRowColumn(Widget w, int x, int y, unsigned char *rowType,
int *row, unsigned char *columnType, int *column);
int XmLGridPosIsResize(Widget g, int x, int y);
void XmLGridSetVisibleColumnCount(Widget w, int num_visible);
void XmLGridHideRightColumn(Widget w);
void XmLGridUnhideRightColumn(Widget w);
int XmLGridGetRowCount(Widget w);
int XmLGridGetColumnCount(Widget w);
/* extern */ void
XmLGridXYToCellTracking(Widget widget,
int x, /* input only args. */
int y, /* input only args. */
Boolean * m_inGrid, /* input/output args. */
int * m_lastRow, /* input/output args. */
int * m_lastCol, /* input/output args. */
unsigned char * m_lastRowtype,/* input/output args. */
unsigned char * m_lastColtype,/* input/output args. */
int * outRow, /* output only args. */
int * outCol, /* output only args. */
Boolean * enter, /* output only args. */
Boolean * leave); /* output only args. */
void XmLGridGetSort(Widget w, int *column, unsigned char *sortType);
void XmLGridSetSort(Widget w, int column, unsigned char sortType);
#ifdef XmL_CPP
}
#endif
#endif

View File

@@ -1,475 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLGridPH
#define XmLGridPH
#include <Xm/XmP.h>
#include <stdlib.h>
#ifndef MOTIF11
#include <Xm/ManagerP.h>
#include <Xm/DrawP.h>
#include <Xm/DragC.h>
#include <Xm/DropTrans.h>
#endif
#include "Grid.h"
#ifdef XmL_ANSIC
void _XmLGridLayout(XmLGridWidget g);
void _XmLGridCellDrawBackground(XmLGridCell cell, Widget w,
XRectangle *clipRect, XmLGridDrawStruct *ds);
void _XmLGridCellDrawBorders(XmLGridCell cell, Widget w,
XRectangle *clipRect, XmLGridDrawStruct *ds);
void _XmLGridCellDrawValue(XmLGridCell cell, Widget w,
XRectangle *clipRect, XmLGridDrawStruct *ds);
typedef int (*XmLGridPreLayoutProc)(XmLGridWidget g, int isVert);
typedef XmLGridRow (*XmLGridRowNewProc)(Widget grid);
typedef void (*XmLGridRowFreeProc)(XmLGridRow);
typedef void (*XmLGridGetRowValueMaskProc)(XmLGridWidget g,
char *s, long *mask);
typedef void (*XmLGridGetRowValueProc)(XmLGridWidget g, XmLGridRow row,
XtArgVal value, long mask);
typedef int (*XmLGridSetRowValuesProc)(XmLGridWidget g,
XmLGridRow row, long mask);
typedef XmLGridColumn (*XmLGridColumnNewProc)(Widget grid);
typedef void (*XmLGridColumnFreeProc)(XmLGridColumn);
typedef void (*XmLGridGetColumnValueMaskProc)(XmLGridWidget g,
char *s, long *mask);
typedef void (*XmLGridGetColumnValueProc)(XmLGridWidget g, XmLGridColumn col,
XtArgVal value, long mask);
typedef int (*XmLGridSetColumnValuesProc)(XmLGridWidget g,
XmLGridColumn col, long mask);
typedef int (*XmLGridSetCellValuesResizeProc)(XmLGridWidget g,
XmLGridRow row, XmLGridColumn col, XmLGridCell cell, long mask);
typedef int (*XmLGridCellActionProc)(XmLGridCell, Widget,
XmLGridCallbackStruct *);
#else
void _XmLGridLayout();
void _XmLGridCellDrawBackground();
void _XmLGridCellDrawBorders();
void _XmLGridCellDrawValue();
typedef int (*XmLGridPreLayoutProc)();
typedef XmLGridRow (*XmLGridRowNewProc)();
typedef void (*XmLGridRowFreeProc)() ;
typedef void (*XmLGridGetRowValueMaskProc)();
typedef void (*XmLGridGetRowValueProc)();
typedef int (*XmLGridSetRowValuesProc)();
typedef XmLGridColumn (*XmLGridColumnNewProc)() ;
typedef void (*XmLGridColumnFreeProc)() ;
typedef void (*XmLGridGetColumnValueMaskProc)();
typedef void (*XmLGridGetColumnValueProc)();
typedef int (*XmLGridSetColumnValuesProc)();
typedef int (*XmLGridSetCellValuesResizeProc)();
typedef int (*XmLGridCellActionProc)();
#endif
#define XmLGridClassPartOfWidget(w) \
((XmLGridWidgetClass)XtClass(w))->grid_class
#define XmInheritGridPreLayout ((XmLGridPreLayoutProc)_XtInherit)
#define XmInheritGridRowNew ((XmLGridRowNewProc)_XtInherit)
#define XmInheritGridRowFree ((XmLGridRowFreeProc)_XtInherit)
#define XmInheritGridGetRowValueMask ((XmLGridGetRowValueMaskProc)_XtInherit)
#define XmInheritGridGetRowValue ((XmLGridGetRowValueProc)_XtInherit)
#define XmInheritGridSetRowValues ((XmLGridSetRowValuesProc)_XtInherit)
#define XmInheritGridColumnNew ((XmLGridColumnNewProc)_XtInherit)
#define XmInheritGridColumnFree ((XmLGridColumnFreeProc)_XtInherit)
#define XmInheritGridGetColumnValueMask \
((XmLGridGetColumnValueMaskProc)_XtInherit)
#define XmInheritGridGetColumnValue ((XmLGridGetColumnValueProc)_XtInherit)
#define XmInheritGridSetColumnValues ((XmLGridSetColumnValuesProc)_XtInherit)
#define XmInheritGridSetCellValuesResize \
((XmLGridSetCellValuesResizeProc)_XtInherit)
#define XmInheritGridCellAction ((XmLGridCellActionProc)_XtInherit)
/* row value mask for get/set values */
#define XmLGridRowHeight (1L<<0)
#define XmLGridRowSizePolicy (1L<<1)
#define XmLGridRowUserData (1L<<2)
#define XmLGridRowValueMaskLen 3
/* column value mask for get/set values */
#define XmLGridColumnWidth (1L<<0)
#define XmLGridColumnSizePolicy (1L<<1)
#define XmLGridColumnUserData (1L<<2)
#define XmLGridColumnResizable (1L<<3)
#define XmLGridColumnHidden (1L<<4)
#define XmLGridColumnSortType (1L<<5)
#define XmLGridColumnValueMaskLen 6
/* flags for XmLGridCell flags member */
#define XmLGridCellSelectedFlag (1 << 0)
#define XmLGridCellValueSetFlag (1 << 1)
#define XmLGridCellInRowSpanFlag (1 << 2)
#define XmLGridCellInColumnSpanFlag (1 << 3)
#define XmLGridCellDrawSortFlag (1 << 4)
#define XmLGridCellSortAscendingFlag (1 << 5)
/* cell value mask for get/set values */
#define XmLGridCellAlignment (1L<<0)
#define XmLGridCellBackground (1L<<1)
#define XmLGridCellBottomBorderColor (1L<<2)
#define XmLGridCellBottomBorderType (1L<<3)
#define XmLGridCellColumnSpan (1L<<4)
#define XmLGridCellEditable (1L<<5)
#define XmLGridCellFontList (1L<<6)
#define XmLGridCellForeground (1L<<7)
#define XmLGridCellLeftBorderColor (1L<<8)
#define XmLGridCellLeftBorderType (1L<<9)
#define XmLGridCellMarginBottom (1L<<10)
#define XmLGridCellMarginLeft (1L<<11)
#define XmLGridCellMarginRight (1L<<12)
#define XmLGridCellMarginTop (1L<<13)
#define XmLGridCellPixmapF (1L<<14)
#define XmLGridCellPixmapMask (1L<<15)
#define XmLGridCellRightBorderColor (1L<<16)
#define XmLGridCellRightBorderType (1L<<17)
#define XmLGridCellRowSpan (1L<<18)
#define XmLGridCellString (1L<<19)
#define XmLGridCellToggleSet (1L<<20)
#define XmLGridCellTopBorderColor (1L<<21)
#define XmLGridCellTopBorderType (1L<<22)
#define XmLGridCellType (1L<<23)
#define XmLGridCellUserData (1L<<24)
/* This is now a resource */
/* #define XmLICON_SPACING 4 */
enum { DrawAll, DrawHScroll, DrawVScroll, DrawRow, DrawCol, DrawCell };
enum { SelectRow, SelectCol, SelectCell };
enum { CursorNormal, CursorHResize, CursorVResize };
enum { InNormal, InSelect, InResize, InMove };
enum { DragLeft = 1, DragRight = 2, DragUp = 4, DragDown = 8 };
typedef struct
{
int x, y, width, height;
int row, col, nrow, ncol;
} GridReg;
typedef struct
{
int row, col;
} GridDropLoc;
typedef struct
{
unsigned char alignment;
Pixel background;
Pixel bottomBorderColor;
char bottomBorderType;
Dimension bottomMargin;
int columnSpan;
Boolean editable;
short fontHeight;
XmFontList fontList;
short fontWidth;
Pixel foreground;
Pixel leftBorderColor;
char leftBorderType;
Dimension leftMargin;
int refCount;
Pixel rightBorderColor;
char rightBorderType;
Dimension rightMargin;
int rowSpan;
Pixel topBorderColor;
char topBorderType;
Dimension topMargin;
unsigned char type;
void *userData;
} XmLGridCellRefValues;
typedef struct
{
Pixmap pixmap, pixmask;
Dimension width, height;
} XmLGridCellPixmap;
typedef struct
{
XmString string;
XmLGridCellPixmap pix;
} XmLGridCellIcon;
typedef struct _XmLGridCellPart
{
XmLGridCellRefValues *refValues;
unsigned char flags;
void *value;
} XmLGridCellPart;
struct _XmLGridCellRec
{
XmLGridCellPart cell;
};
typedef struct _XmLGridRowPart
{
int pos; /* required first for Array autonumber */
Dimension height;
unsigned char sizePolicy;
Boolean selected;
XtPointer userData;
Dimension heightInPixels;
unsigned int heightInPixelsValid:1;
Widget grid;
int visPos;
XmLArray cellArray;
} XmLGridRowPart;
struct _XmLGridRowRec
{
XmLGridRowPart grid;
};
typedef struct _XmLGridColumnPart
{
int pos; /* required first for Array autonumber */
Dimension width;
unsigned char sizePolicy;
Boolean selected;
XtPointer userData;
XmLGridCellRefValues *defCellValues;
Widget grid;
Dimension widthInPixels;
unsigned int widthInPixelsValid:1;
Boolean resizable;
int visPos;
/* xfe additions */
Boolean hidden;
unsigned char sort;
} XmLGridColumnPart;
struct _XmLGridColumnRec
{
XmLGridColumnPart grid;
};
typedef struct _XmLGridPart
{
/* resource values */
int leftFixedCount, rightFixedCount;
int headingRowCount, footerRowCount;
int topFixedCount, bottomFixedCount;
int headingColCount, footerColCount;
Dimension leftFixedMargin, rightFixedMargin;
Dimension topFixedMargin, bottomFixedMargin;
Dimension scrollBarMargin;
Dimension highlightThickness;
Dimension toggleSize;
Dimension globalPixmapWidth, globalPixmapHeight;
unsigned char selectionPolicy;
Boolean layoutFrozen, immediateDraw;
int debugLevel;
unsigned char vsPolicy, hsPolicy;
unsigned char hsbDisplayPolicy, vsbDisplayPolicy;
int rowCount, colCount;
int hiddenRowCount, hiddenColCount;
int shadowRegions;
unsigned char shadowType;
Widget hsb, vsb, text;
XmFontList fontList;
Pixel blankBg, selectBg, selectFg;
Pixel defaultCellBg, defaultCellFg;
Pixel toggleTopColor, toggleBotColor;
int visibleCols, visibleRows;
char *simpleHeadings, *simpleWidths;
XtTranslations editTrans, traverseTrans;
Boolean allowRowHide, allowColHide;
Boolean allowRowResize, allowColResize;
Boolean allowDrag, allowDrop;
Boolean autoSelect;
Boolean highlightRowMode;
Boolean useAvgWidth;
int scrollRow, scrollCol, cScrollRow, cScrollCol;
XtCallbackList addCallback, deleteCallback;
XtCallbackList cellDrawCallback, cellFocusCallback;
XtCallbackList cellDropCallback, cellPasteCallback;
XtCallbackList activateCallback, editCallback;
XtCallbackList selectCallback, deselectCallback;
XtCallbackList resizeCallback, scrollCallback;
XtCallbackList enterCellCallback;
XtCallbackList leaveCellCallback;
XtCallbackList enterGridCallback;
XtCallbackList leaveGridCallback;
/* XFE Additions */
XtCallbackList popupCallback;
Boolean hideUnhideButtons;
Boolean singleClickActivation;
Widget hideButton;
Widget unhideButton;
XtTranslations hideButtonTrans;
XtTranslations unhideButtonTrans;
Boolean inResize;
Boolean useTextWidget;
Dimension iconSpacing;
Dimension minColWidth;
int lastCursorMotionRow;
int lastCursorMotionCol;
unsigned char colSortType;
/* private data */
GC gc;
Cursor hResizeCursor, vResizeCursor;
XFontStruct *fallbackFont;
char ignoreModifyVerify;
char focusIn, inEdit, inMode;
char singleColScrollMode;
int singleColScrollPos;
char cursorDefined, textHidden, resizeIsVert;
char mayHaveRowSpans;
int layoutStack;
char needsHorizLayout, needsVertLayout;
char recalcHorizVisPos, recalcVertVisPos;
char vertVisChangedHint;
char dragTimerSet;
XtIntervalId dragTimerId;
int resizeRow, resizeCol, resizeLineXY;
int extendRow, extendCol, extendToRow, extendToCol;
Boolean extendSelect;
int lastSelectRow, lastSelectCol;
Time lastSelectTime;
int focusRow, focusCol;
XmLArray rowArray;
XmLArray colArray;
GridReg reg[9];
GridDropLoc dropLoc;
/* resources use by SetSubValues and GetSubValues */
Boolean cellDefaults;
int cellRow, cellCol;
int cellColRangeStart, cellColRangeEnd;
int cellRowRangeStart, cellRowRangeEnd;
int rowStep, colStep;
unsigned char rowType, colType;
Boolean colHidden;
/* cell resources */
XmString cellString;
Boolean cellToggleSet;
Pixmap cellPixmap, cellPixmapMask;
Dimension cellPixmapWidth, cellPixmapHeight;
XmLGridCellRefValues cellValues, *defCellValues;
/* row resources */
Dimension rowHeight;
unsigned char rowSizePolicy;
Boolean rowSelected;
XtPointer rowUserData;
/* column resources */
Dimension colWidth;
unsigned char colSizePolicy;
Boolean colSelected;
XtPointer colUserData;
Boolean colResizable;
/* xfe additions */
/* Edit timer is used for inplace editing */
char editTimerSet;
XtIntervalId editTimerId;
} XmLGridPart;
typedef struct _XmLGridRec
{
CorePart core;
CompositePart composite;
ConstraintPart constraint;
XmManagerPart manager;
XmLGridPart grid;
} XmLGridRec;
typedef struct _XmLGridClassPart
{
int initialRows;
int initialCols;
XmLGridPreLayoutProc preLayoutProc;
int rowRecSize;
XmLGridRowNewProc rowNewProc;
XmLGridRowFreeProc rowFreeProc;
XmLGridGetRowValueMaskProc getRowValueMaskProc;
XmLGridGetRowValueProc getRowValueProc;
XmLGridSetRowValuesProc setRowValuesProc;
int columnRecSize;
XmLGridColumnNewProc columnNewProc;
XmLGridColumnFreeProc columnFreeProc;
XmLGridGetColumnValueMaskProc getColumnValueMaskProc;
XmLGridGetColumnValueProc getColumnValueProc;
XmLGridSetColumnValuesProc setColumnValuesProc;
XmLGridSetCellValuesResizeProc setCellValuesResizeProc;
XmLGridCellActionProc cellActionProc;
} XmLGridClassPart;
typedef struct _XmLGridClassRec
{
CoreClassPart core_class;
CompositeClassPart composite_class;
ConstraintClassPart constraint_class;
XmManagerClassPart manager_class;
XmLGridClassPart grid_class;
} XmLGridClassRec;
extern XmLGridClassRec xmlGridClassRec;
typedef struct _XmLGridConstraintPart
{
int unused;
} XmLGridConstraintPart;
typedef struct _XmLGridConstraintRec
{
XmManagerConstraintPart manager;
XmLGridConstraintPart grid;
} XmLGridConstraintRec, *XmLGridConstraintPtr;
#endif

View File

@@ -1,151 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*----------------------------------------------------------------------*/
/* */
/* Name: <XmL/GridUtil.c> */
/* */
/* Description: XmLGrid misc utilities. They are here in order not to */
/* continue bloating Grid.c beyond hope. */
/* */
/* Author: Ramiro Estrugo <ramiro@netscape.com> */
/* */
/* Created: Thu May 28 21:55:45 PDT 1998 */
/* */
/*----------------------------------------------------------------------*/
#include "GridP.h"
#include <assert.h>
/*----------------------------------------------------------------------*/
/* extern */ int
XmLGridGetRowCount(Widget w)
{
XmLGridWidget g = (XmLGridWidget) w;
assert( g != NULL );
#ifdef DEBUG_ramiro
{
int rows = 0;
XtVaGetValues(w,XmNrows,&rows,NULL);
assert( rows == g->grid.rowCount );
}
#endif
return g->grid.rowCount;
}
/*----------------------------------------------------------------------*/
/* extern */ int
XmLGridGetColumnCount(Widget w)
{
XmLGridWidget g = (XmLGridWidget) w;
assert( g != NULL );
#ifdef DEBUG_ramiro
{
int columns = 0;
XtVaGetValues(w,XmNcolumns,&columns,NULL);
assert( columns == g->grid.colCount );
}
#endif
return g->grid.colCount;
}
/*----------------------------------------------------------------------*/
/* extern */ void
XmLGridXYToCellTracking(Widget widget,
int x, /* input only args. */
int y, /* input only args. */
Boolean * m_inGrid, /* input/output args. */
int * m_lastRow, /* input/output args. */
int * m_lastCol, /* input/output args. */
unsigned char * m_lastRowtype, /* input/output args. */
unsigned char * m_lastColtype,/* input/output args. */
int * outRow, /* output only args. */
int * outCol, /* output only args. */
Boolean * enter, /* output only args. */
Boolean * leave) /* output only args. */
{
int m_totalLines = 0;
int m_numcolumns = 0;
int row = 0;
int column = 0;
unsigned char rowtype = XmCONTENT;
unsigned char coltype = XmCONTENT;
if (0 > XmLGridXYToRowColumn(widget,
x,
y,
&rowtype,
&row,
&coltype,
&column))
{
/* In grid; but, not in any cells
*/
/* treat it as a leave
*/
*enter = FALSE;
*leave = TRUE;
return;
}/* if */
m_totalLines = XmLGridGetRowCount(widget);
m_numcolumns = XmLGridGetColumnCount(widget);
if ((row < m_totalLines) &&
(column < m_numcolumns) &&
((*m_lastRow != row)||
(*m_lastCol != column) ||
(*m_lastRowtype != rowtype)||
(*m_lastColtype != coltype)))
{
*outRow = (rowtype == XmHEADING)?-1:row;
*outCol = column;
if (*m_inGrid == False)
{
*m_inGrid = True;
/* enter a cell
*/
*enter = TRUE;
*leave = FALSE;
}/* if */
else
{
/* Cruising among cells
*/
*enter = TRUE;
*leave = TRUE;
}/* else */
*m_lastRow = row;
*m_lastCol = column;
*m_lastRowtype = rowtype ;
*m_lastColtype = coltype ;
}/* row /col in grid */
}
/*----------------------------------------------------------------------*/

View File

@@ -1,82 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# The following source code is part of the Microline Widget Library.
# The Microline widget library is made available to Mozilla developers
# under the Netscape Public License (NPL) by Neuron Data. To learn
# more about Neuron Data, please visit the Neuron Data Home Page at
# http://www.neurondata.com.
#
##########################################################################
#
# Name: Makefile
# Description: Makefile for Microline Widget library
# Author: Ramiro Estrugo <ramiro@netscape.com>
#
##########################################################################
DEPTH = ../../../..
# XmL headers are exported to dist/public/Microline/XmL
MODULE = Microline/XmL
LIBRARY_NAME = XmL
# There are unused widgets. They are currently not needed to build Mozilla,
# but that might change in the future.
ifdef XFE_WIDGETS_BUILD_UNUSED
XFE_EXTRA_DEFINES += -DXFE_WIDGETS_BUILD_UNUSED
UNUSED_CSRCS = \
Progress.c \
$(NULL)
UNUSED_EXPORTS = \
Progress.h \
ProgressP.h \
$(NULL)
endif
CSRCS = \
$(UNUSED_CSRCS) \
Folder.c \
Grid.c \
GridUtil.c \
Tree.c \
XmL.c \
$(NULL)
REQUIRES = Microline
EXPORTS = \
$(UNUSED_EXPORTS) \
Folder.h \
FolderP.h \
Grid.h \
GridP.h \
Tree.h \
TreeP.h \
XmL.h \
$(NULL)
include $(DEPTH)/config/rules.mk
DEFINES += $(XFE_EXTRA_DEFINES)

View File

@@ -1,89 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# The following source code is part of the Microline Widget Library.
# The Microline widget library is made available to Mozilla developers
# under the Netscape Public License (NPL) by Neuron Data. To learn
# more about Neuron Data, please visit the Neuron Data Home Page at
# http://www.neurondata.com.
#
##########################################################################
#
# Name: Makefile
# Description: Makefile for Microline Widget library
# Author: Ramiro Estrugo <ramiro@netscape.com>
#
##########################################################################
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
# XmL headers are exported to dist/public/Microline/XmL
MODULE = Microline/XmL
LIBRARY_NAME = XmL
# There are unused widgets. They are currently not needed to build Mozilla,
# but that might change in the future.
ifdef XFE_WIDGETS_BUILD_UNUSED
XFE_EXTRA_DEFINES += -DXFE_WIDGETS_BUILD_UNUSED
UNUSED_CSRCS = \
Progress.c \
$(NULL)
UNUSED_EXPORTS = \
Progress.h \
ProgressP.h \
$(NULL)
endif
CSRCS = \
$(UNUSED_CSRCS) \
Folder.c \
Grid.c \
GridUtil.c \
Tree.c \
XmL.c \
$(NULL)
REQUIRES = Microline
EXPORTS = \
$(UNUSED_EXPORTS) \
Folder.h \
FolderP.h \
Grid.h \
GridP.h \
Tree.h \
TreeP.h \
XmL.h \
$(NULL)
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
include $(topsrcdir)/config/rules.mk
DEFINES += $(XFE_EXTRA_DEFINES)

View File

@@ -1,601 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include "ProgressP.h"
#include <stdio.h>
#include <sys/time.h>
static void ClassInitialize(void);
static void Initialize(Widget , Widget, ArgList, Cardinal *);
static void Resize(Widget);
static void Destroy(Widget);
static void Realize(Widget w, XtValueMask *valueMask,
XSetWindowAttributes *attr);
static void Redisplay(Widget, XEvent *, Region);
static Boolean SetValues(Widget, Widget, Widget, ArgList, Cardinal *);
static void CopyFontList(XmLProgressWidget p);
static void TimeStr(char *, int);
static void DrawBarMeter(XmLProgressWidget p, XRectangle *rect);
static void DrawBoxesMeter(XmLProgressWidget p, XRectangle *rect);
static void DrawString(XmLProgressWidget, XmString, int, int,
int, XRectangle *, XRectangle *);
static Boolean CvtStringToMeterStyle(Display *dpy, XrmValuePtr args,
Cardinal *numArgs, XrmValuePtr fromVal, XrmValuePtr toVal,
XtPointer *data);
static XtResource resources[] =
{
{
XmNcompleteValue, XmCCompleteValue,
XtRInt, sizeof(int),
XtOffset(XmLProgressWidget, progress.completeValue),
XtRImmediate, (caddr_t)100
},
{
XmNnumBoxes, XmCNumBoxes,
XtRInt, sizeof(int),
XtOffset(XmLProgressWidget, progress.numBoxes),
XtRImmediate, (caddr_t)10
},
{
XmNvalue, XmCValue,
XtRInt, sizeof(int),
XtOffset(XmLProgressWidget, progress.value),
XtRImmediate, (caddr_t)0
},
{
XmNfontList, XmCFontList,
XmRFontList, sizeof(XmFontList),
XtOffset(XmLProgressWidget, progress.fontList),
XmRImmediate, (XtPointer)0,
},
{
XmNmeterStyle, XmCMeterStyle,
XmRMeterStyle, sizeof(unsigned char),
XtOffset(XmLProgressWidget, progress.meterStyle),
XmRImmediate, (XtPointer)XmMETER_BAR,
},
{
XmNshowTime, XmCShowTime,
XmRBoolean, sizeof(Boolean),
XtOffset(XmLProgressWidget, progress.showTime),
XmRImmediate, (XtPointer)False
},
{
XmNshowPercentage, XmCShowPercentage,
XmRBoolean, sizeof(Boolean),
XtOffset(XmLProgressWidget, progress.showPercentage),
XmRImmediate, (XtPointer)True
}
};
XmLProgressClassRec xmlProgressClassRec =
{
{ /* Core */
(WidgetClass)&xmPrimitiveClassRec, /* superclass */
"XmLProgress", /* class_name */
sizeof(XmLProgressRec), /* widget_size */
ClassInitialize, /* class_initialize */
NULL, /* class_part_initialize */
FALSE, /* class_inited */
(XtInitProc)Initialize, /* initialize */
NULL, /* initialize_hook */
(XtRealizeProc)Realize, /* realize */
NULL, /* actions */
0, /* num_actions */
resources, /* resources */
XtNumber(resources), /* num_resources */
NULLQUARK, /* xrm_class */
TRUE, /* compress_motion */
FALSE, /* compress_exposure */
TRUE, /* compress_enterleave */
TRUE, /* visible_interest */
(XtWidgetProc)Destroy, /* destroy */
(XtWidgetProc)Resize, /* resize */
(XtExposeProc)Redisplay, /* expose */
(XtSetValuesFunc)SetValues, /* set_values */
NULL, /* set_values_hook */
XtInheritSetValuesAlmost, /* set_values_almost */
NULL, /* get_values_hook */
NULL, /* accept_focus */
XtVersion, /* version */
NULL, /* callback_private */
XtInheritTranslations, /* tm_table */
NULL, /* query_geometry */
NULL, /* display_accelerator */
NULL, /* extension */
},
{ /* Primitive */
(XtWidgetProc)_XtInherit, /* border_highlight */
(XtWidgetProc)_XtInherit, /* border_unhighlight */
XtInheritTranslations, /* translations */
NULL, /* arm_and_activate */
NULL, /* syn_resources */
0, /* num_syn_resources */
NULL, /* extension */
},
{ /* Progress */
0, /* unused */
}
};
WidgetClass xmlProgressWidgetClass = (WidgetClass)&xmlProgressClassRec;
static void
ClassInitialize(void)
{
XmLInitialize();
XtSetTypeConverter(XmRString, XmRMeterStyle, CvtStringToMeterStyle,
0, 0, XtCacheNone, 0);
}
static void
Initialize(Widget reqW,
Widget newW,
ArgList args,
Cardinal *narg)
{
XmLProgressWidget p;
p = (XmLProgressWidget)newW;
if (!p->core.width)
p->core.width = 200;
if (!p->core.height)
p->core.height = 30;
p->progress.gc = 0;
p->progress.startTime = time(0);
CopyFontList(p);
if (p->progress.completeValue < 1)
{
XmLWarning(newW, "Initialize() - complete value can't be < 1");
p->progress.completeValue = 1;
}
if (p->progress.numBoxes < 1)
{
XmLWarning(newW, "Initialize() - number of boxes can't be < 1");
p->progress.numBoxes = 1;
}
if (p->progress.value < 0)
{
XmLWarning(newW, "Initialize() - value can't be < 0");
p->progress.value = 0;
}
if (p->progress.value > p->progress.completeValue)
{
XmLWarning(newW, "Initialize() - value can't be > completeValue");
p->progress.value = p->progress.completeValue;
}
XtVaSetValues(newW, XmNtraversalOn, False, NULL);
}
static void
Resize(Widget w)
{
Display *dpy;
Window win;
if (!XtIsRealized(w))
return;
dpy = XtDisplay(w);
win = XtWindow(w);
XClearArea(dpy, win, 0, 0, 0, 0, True);
}
static void
Destroy(Widget w)
{
Display *dpy;
XmLProgressWidget p;
p = (XmLProgressWidget)w;
dpy = XtDisplay(w);
if (p->progress.gc)
{
XFreeGC(dpy, p->progress.gc);
XFreeFont(dpy, p->progress.fallbackFont);
}
XmFontListFree(p->progress.fontList);
}
static void
Realize(Widget w,
XtValueMask *valueMask,
XSetWindowAttributes *attr)
{
XmLProgressWidget p;
Display *dpy;
WidgetClass superClass;
XtRealizeProc realize;
XGCValues values;
/* XtGCMask mask;*/
p = (XmLProgressWidget)w;
dpy = XtDisplay(p);
superClass = xmlProgressWidgetClass->core_class.superclass;
realize = superClass->core_class.realize;
(*realize)(w, valueMask, attr);
if (!p->progress.gc)
{
p->progress.fallbackFont = XLoadQueryFont(dpy, "fixed");
values.font = p->progress.fallbackFont->fid;
p->progress.gc = XCreateGC(dpy, XtWindow(p), GCFont, &values);
}
}
static void
Redisplay(Widget w,
XEvent *event,
Region region)
{
XmLProgressWidget p;
Display *dpy;
Window win;
XRectangle rect;
int st;
if (!XtIsRealized(w) || !w->core.visible)
return;
p = (XmLProgressWidget)w;
dpy = XtDisplay(w);
win = XtWindow(w);
st = p->primitive.shadow_thickness;
rect.x = st;
rect.y = st;
rect.width = p->core.width - st * 2;
rect.height = p->core.height - st * 2;
if (p->progress.meterStyle == XmMETER_BAR)
DrawBarMeter(p, &rect);
else if (p->progress.meterStyle == XmMETER_BOXES)
DrawBoxesMeter(p, &rect);
#ifdef MOTIF11
_XmDrawShadow(dpy, win,
p->primitive.bottom_shadow_GC,
p->primitive.top_shadow_GC,
p->primitive.shadow_thickness,
0, 0, p->core.width, p->core.height);
#else
_XmDrawShadows(dpy, win,
p->primitive.top_shadow_GC,
p->primitive.bottom_shadow_GC,
0, 0, p->core.width, p->core.height,
p->primitive.shadow_thickness,
XmSHADOW_IN);
#endif
}
static void
DrawBoxesMeter(XmLProgressWidget p,
XRectangle *rect)
{
Display *dpy;
Window win;
int i, j, st, nb, x1, x2;
dpy = XtDisplay(p);
win = XtWindow(p);
st = p->primitive.shadow_thickness;
nb = p->progress.numBoxes;
if (nb * st * 2 > (int)rect->width)
return;
if (p->progress.completeValue)
j = (int)((long)nb * (long)p->progress.value /
(long)p->progress.completeValue);
else
j = 0;
x2 = 0;
for (i = 0; i < nb; i++)
{
if (i < j)
XSetForeground(dpy, p->progress.gc, p->primitive.foreground);
else
XSetForeground(dpy, p->progress.gc, p->core.background_pixel);
x1 = x2;
if (i == nb - 1)
x2 = rect->width;
else
x2 = ((int)rect->width * (i + 1)) / nb;
XFillRectangle(dpy, win, p->progress.gc,
rect->x + x1 + st, rect->y + st,
x2 - x1 - st * 2, rect->height - st * 2);
#ifdef MOTIF11
_XmDrawShadow(dpy, win,
p->primitive.bottom_shadow_GC,
p->primitive.top_shadow_GC,
p->primitive.shadow_thickness,
rect->x + x1, rect->y,
x2 - x1, rect->height);
#else
_XmDrawShadows(dpy, win,
p->primitive.top_shadow_GC,
p->primitive.bottom_shadow_GC,
rect->x + x1, rect->y,
x2 - x1, rect->height,
p->primitive.shadow_thickness,
XmSHADOW_IN);
#endif
}
}
static void
DrawBarMeter(XmLProgressWidget p,
XRectangle *rect)
{
Display *dpy;
Window win;
int timeLeft, timeSoFar;
time_t currentTime;
XmString str;
Dimension strWidth, strHeight;
XRectangle lRect, rRect;
int percent;
char c[10];
long l;
dpy = XtDisplay(p);
win = XtWindow(p);
/* Left Rect */
if (p->progress.completeValue)
l = (long)rect->width * (long)p->progress.value /
(long)p->progress.completeValue;
else
l = 0;
lRect.x = rect->x;
lRect.y = rect->y;
lRect.width = (Dimension)l;
lRect.height = rect->height;
XSetForeground(dpy, p->progress.gc, p->primitive.foreground);
XFillRectangle(dpy, win, p->progress.gc, lRect.x, lRect.y,
lRect.width, lRect.height);
/* Right Rect */
rRect.x = rect->x + (int)l;
rRect.y = rect->y;
rRect.width = rect->width - (Dimension)l;
rRect.height = rect->height;
XSetForeground(dpy, p->progress.gc, p->core.background_pixel);
XFillRectangle(dpy, win, p->progress.gc, rRect.x, rRect.y,
rRect.width, rRect.height);
if (p->progress.completeValue)
percent = (int)(((long)p->progress.value * 100) /
(long)p->progress.completeValue);
else
percent = 0;
/* percent complete */
sprintf(c, "%d%c", percent, '%');
str = XmStringCreateSimple(c);
XmStringExtent(p->progress.fontList, str, &strWidth, &strHeight);
if (p->progress.showPercentage)
DrawString(p, str, rect->x + rect->width / 2 - (int)strWidth / 2,
rect->y + rect->height / 2 - (int)strHeight / 2, strWidth,
&lRect, &rRect);
XmStringFree(str);
/* Left Time */
currentTime = time(0);
timeSoFar = (int)(currentTime - p->progress.startTime);
if (p->progress.showTime && p->progress.value &&
p->progress.value != p->progress.completeValue && timeSoFar)
{
TimeStr(c, timeSoFar);
str = XmStringCreateSimple(c);
XmStringExtent(p->progress.fontList, str,
&strWidth, &strHeight);
DrawString(p, str, rect->x + 5, rect->y + rect->height / 2 -
(int)strHeight / 2, strWidth, &lRect, &rRect);
XmStringFree(str);
}
/* Right Time */
timeLeft = 0;
if (percent)
timeLeft = (timeSoFar * 100 / percent) - timeSoFar;
if (p->progress.showTime && percent && percent != 100 && timeLeft)
{
TimeStr(c, timeLeft);
str = XmStringCreateSimple(c);
XmStringExtent(p->progress.fontList, str,
&strWidth, &strHeight);
DrawString(p, str, rect->x + rect->width - strWidth - 5,
rect->y + rect->height / 2 - (int)strHeight / 2,
strWidth, &lRect, &rRect);
XmStringFree(str);
}
}
static void
DrawString(XmLProgressWidget p,
XmString str,
int x,
int y,
int strWidth,
XRectangle *lRect,
XRectangle *rRect)
{
Display *dpy;
Window win;
dpy = XtDisplay(p);
win = XtWindow(p);
if (lRect->width && lRect->height)
{
XSetForeground(dpy, p->progress.gc, p->core.background_pixel);
XSetClipRectangles(dpy, p->progress.gc, 0, 0, lRect, 1, Unsorted);
XmStringDraw(dpy, win, p->progress.fontList, str,
p->progress.gc, x, y, strWidth, XmALIGNMENT_BEGINNING,
XmSTRING_DIRECTION_L_TO_R, 0);
XSetClipMask(dpy, p->progress.gc, None);
}
if (rRect->width && rRect->height)
{
XSetForeground(dpy, p->progress.gc, p->primitive.foreground);
XSetClipRectangles(dpy, p->progress.gc, 0, 0, rRect, 1, Unsorted);
XmStringDraw(dpy, win, p->progress.fontList, str,
p->progress.gc, x, y, strWidth, XmALIGNMENT_BEGINNING,
XmSTRING_DIRECTION_L_TO_R, 0);
XSetClipMask(dpy, p->progress.gc, None);
}
}
static void
TimeStr(char *c,
int seconds)
{
int h, m, s;
s = seconds;
m = s / 60;
s -= m * 60;
h = m / 60;
m -= h * 60;
if (h > 99)
h = 99;
if (h > 0 && m < 10)
sprintf(c, "%d:0%d hr", h, m);
else if (h > 0)
sprintf(c, "%d:%d hr", h, m);
else if (m > 0 && s < 10)
sprintf(c, "%d:0%d min", m, s);
else if (m > 0)
sprintf(c, "%d:%d min", m, s);
else
sprintf(c, "%d sec", s);
}
static Boolean
SetValues(Widget curW,
Widget reqW,
Widget newW,
ArgList args,
Cardinal *narg)
{
XmLProgressWidget cur, p;
XtAppContext app;
cur = (XmLProgressWidget)curW;
p = (XmLProgressWidget)newW;
app = XtWidgetToApplicationContext(curW);
if (p->progress.value == 0)
p->progress.startTime = time(0);
if (p->progress.completeValue < 1)
{
XmLWarning(newW, "SetValues() - complete value can't be < 1");
p->progress.completeValue = 1;
}
if (p->progress.numBoxes < 1)
{
XmLWarning(newW, "SetValues() - number of boxes can't be < 1");
p->progress.numBoxes = 1;
}
if (p->progress.value < 0)
{
XmLWarning(newW, "SetValues() - value can't be < 0");
p->progress.value = 0;
}
if (p->progress.value > p->progress.completeValue)
{
XmLWarning(newW, "SetValues() - value can't be > completeValue");
p->progress.value = p->progress.completeValue;
}
if (p->progress.fontList != cur->progress.fontList)
{
XmFontListFree(cur->progress.fontList);
CopyFontList(p);
}
/* display changes immediately since we may be not get back
to XNextEvent if the calling application is computing */
if (p->core.background_pixel != cur->core.background_pixel ||
p->primitive.foreground != cur->primitive.foreground ||
p->progress.value != cur->progress.value ||
p->progress.completeValue != cur->progress.completeValue ||
p->progress.fontList != cur->progress.fontList ||
p->progress.showTime != cur->progress.showTime ||
p->progress.showPercentage != cur->progress.showPercentage ||
p->progress.meterStyle != cur->progress.meterStyle ||
p->progress.numBoxes != cur->progress.numBoxes ||
p->primitive.shadow_thickness != cur->primitive.shadow_thickness)
{
Redisplay(newW, 0, 0);
XFlush(XtDisplay(newW));
XmUpdateDisplay(newW);
}
return FALSE;
}
static void
CopyFontList(XmLProgressWidget p)
{
if (!p->progress.fontList)
p->progress.fontList = XmLFontListCopyDefault((Widget)p);
else
p->progress.fontList = XmFontListCopy(p->progress.fontList);
if (!p->progress.fontList)
XmLWarning((Widget)p, "- fatal error - font list NULL");
}
static Boolean
CvtStringToMeterStyle(Display *dpy,
XrmValuePtr args,
Cardinal *narg,
XrmValuePtr fromVal,
XrmValuePtr toVal,
XtPointer *data)
{
static XmLStringToUCharMap map[] =
{
{ "METER_BAR", XmMETER_BAR },
{ "METER_BOXES", XmMETER_BOXES },
{ 0, 0 },
};
return XmLCvtStringToUChar(dpy, "XmRMeterStyle", map, fromVal, toVal);
}
/*
Public Functions
*/
Widget
XmLCreateProgress(Widget parent,
char *name,
ArgList arglist,
Cardinal argcount)
{
return XtCreateWidget(name, xmlProgressWidgetClass, parent,
arglist, argcount);
}

View File

@@ -1,57 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLProgressH
#define XmLProgressH
#include <XmL/XmL.h>
#ifdef XmL_CPP
extern "C" {
#endif
extern WidgetClass xmlProgressWidgetClass;
typedef struct _XmLProgressClassRec *XmLProgressWidgetClass;
typedef struct _XmLProgressRec *XmLProgressWidget;
#define XmLIsProgress(w) XtIsSubclass((w), xmlProgressWidgetClass)
#ifdef XmL_ANSIC
Widget XmLCreateProgress(Widget parent, char *name, ArgList arglist,
Cardinal argcount);
#else
Widget XmLCreateProgress();
#endif
#ifdef XmL_CPP
}
#endif
#endif

View File

@@ -1,76 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLProgressPH
#define XmLProgressPH
#include <Xm/XmP.h>
#include <X11/StringDefs.h>
#ifdef MOTIF11
#else
#include <Xm/PrimitiveP.h>
#include <Xm/DrawP.h>
#endif
#include <sys/types.h>
#include "Progress.h"
typedef struct _XmLProgressPart
{
int completeValue, value;
Boolean showTime;
Boolean showPercentage;
XmFontList fontList;
GC gc;
time_t startTime;
XFontStruct *fallbackFont;
unsigned char meterStyle;
int numBoxes;
} XmLProgressPart;
typedef struct _XmLProgressRec
{
CorePart core;
XmPrimitivePart primitive;
XmLProgressPart progress;
} XmLProgressRec;
typedef struct _XmLProgressClassPart
{
int null;
} XmLProgressClassPart;
typedef struct _XmLProgressClassRec
{
CoreClassPart core_class;
XmPrimitiveClassPart primitive_class;
XmLProgressClassPart progress_class;
} XmLProgressClassRec;
extern XmLProgressClassRec xmlProgressClassRec;
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,56 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLTreeH
#define XmLTreeH
#include <XmL/XmL.h>
#include <XmL/Grid.h>
#ifdef XmL_CPP
extern "C" {
#endif
extern WidgetClass xmlTreeWidgetClass;
typedef struct _XmLTreeClassRec *XmLTreeWidgetClass;
typedef struct _XmLTreeRec *XmLTreeWidget;
typedef struct _XmLTreeRowRec *XmLTreeRow;
#define XmLIsTree(w) XtIsSubclass((w), xmlTreeWidgetClass)
Widget XmLCreateTree(Widget parent, char *name, ArgList arglist,
Cardinal argcount);
void XmLTreeAddRow(Widget w, int level, Boolean expands, Boolean isExpaned,
int position, Pixmap pixmap, Pixmap pixmask, XmString string);
void XmLTreeAddRows(Widget w, XmLTreeRowDefinition *rows,
int count, int position);
void XmLTreeDeleteChildren(Widget w, int position);
#ifdef XmL_CPP
}
#endif
#endif

View File

@@ -1,125 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLTreePH
#define XmLTreePH
#include <Xm/XmP.h>
#ifndef MOTIF11
#include <Xm/ManagerP.h>
#include <Xm/DrawP.h>
#endif
#include "Tree.h"
#include "GridP.h"
/* row value mask for get/set values */
#define RVML XmLGridRowValueMaskLen
#define XmLTreeRowLevel (1L << (RVML))
#define XmLTreeRowExpands (1L << (RVML + 1))
#define XmLTreeRowIsExpanded (1L << (RVML + 2))
typedef struct _XmLTreeRowPart
{
Boolean expands;
int level;
Boolean hasChildren, hasSiblings, isExpanded;
Dimension stringWidth;
Boolean stringWidthValid;
} XmLTreeRowPart;
struct _XmLTreeRowRec
{
XmLGridRowPart grid;
XmLTreeRowPart tree;
};
typedef struct _XmLTreePart
{
/* resources */
Dimension levelSpacing;
Pixel lineColor, pmColor;
XtCallbackList collapseCallback, expandCallback;
/* private data */
char *linesData;
int linesSize, linesMaxLevel;
int recalcTreeWidth;
char defaultPixmapsCreated;
Pixel pixColors[4];
Pixmap filePixmask, folderPixmask, folderOpenPixmask;
Pixmap filePixmap, folderPixmap, folderOpenPixmap;
/* row resources */
int rowLevel;
Boolean rowExpands, rowIsExpanded;
/* Causes the tree to NOT render any pixmaps */
Boolean ignorePixmaps;
} XmLTreePart;
typedef struct _XmLTreeRec
{
CorePart core;
CompositePart composite;
ConstraintPart constraint;
XmManagerPart manager;
XmLGridPart grid;
XmLTreePart tree;
} XmLTreeRec;
typedef struct _XmLTreeClassPart
{
int unused;
} XmLTreeClassPart;
typedef struct _XmLTreeClassRec
{
CoreClassPart core_class;
CompositeClassPart composite_class;
ConstraintClassPart constraint_class;
XmManagerClassPart manager_class;
XmLGridClassPart grid_class;
XmLTreeClassPart tree_class;
} XmLTreeClassRec;
extern XmLTreeClassRec xmlTreeClassRec;
typedef struct _XmLTreeConstraintPart
{
int unused;
} XmLTreeConstraintPart;
typedef struct _XmLTreeConstraintRec
{
XmManagerConstraintPart manager;
XmLGridConstraintPart grid;
XmLTreeConstraintPart tree;
} XmLTreeConstraintRec, *XmLTreeConstraintPtr;
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,658 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#ifndef XmLH
#define XmLH
#include <Xm/Xm.h>
#if defined(__cplusplus) || defined(c_plusplus)
#define XmL_CPP 1
#endif
#if defined(_STDC_) || defined(__STDC__) || defined(XmL_CPP)
#ifndef _NO_PROTO
#define XmL_ANSIC 1
#endif
#endif
#define XmLVERSION_301
#ifdef XmL_CPP
extern "C" {
#endif
/* shared resources */
#define XmNautoSelect "autoSelect"
#define XmCAutoSelect "AutoSelect"
#define XmNblankBackground "blankBackground"
#define XmCBlankBackground "BlankBackground"
#define XmNdebugLevel "debugLevel"
#define XmCDebugLevel "DebugLevel"
/* Folder resources */
#define XmNacceptResize "acceptResize"
#define XmCAcceptResize "AcceptResize"
#define XmNactiveTab "activeTab"
#define XmCActiveTab "ActiveTab"
#define XmNblankBackgroundPixmap "blankBackgroundPixmap"
#define XmCBlankBackgroundPixmap "BlankBackgroundPixmap"
#define XmNcornerDimension "cornerDimension"
#define XmCCornerDimension "CornerDimension"
#define XmNcornerStyle "cornerStyle"
#define XmCCornerStyle "CornerStyle"
#define XmRCornerStyle "CornerStyle"
#define XmNinactiveBackground "inactiveBackground"
#define XmCInactiveBackground "InactiveBackground"
#define XmNinactiveForeground "inactiveForeground"
#define XmCInactiveForeground "InactiveForeground"
#define XmNpixmapMargin "pixmapMargin"
#define XmCPixmapMargin "PixmapMargin"
#define XmCFolderResizePolicy "FolderResizePolicy"
#define XmRFolderResizePolicy "FolderResizePolicy"
#define XmNrotateWhenLeftRight "rotateWhenLeftRight"
#define XmCRotateWhenLeftRight "RotateWhenLeftRight"
#define XmNtabBarHeight "tabBarHeight"
#define XmCTabBarHeight "TabBarHeight"
#define XmNtabCount "tabCount"
#define XmCTabCount "TabCount"
#define XmNtabPlacement "tabPlacement"
#define XmCTabPlacement "TabPlacement"
#define XmRTabPlacement "TabPlacement"
#define XmNtabsPerRow "tabsPerRow"
#define XmCTabsPerRow "TabsPerRow"
#define XmNtabTranslations "tabTranslations"
#define XmNtabWidgetList "tabWidgetList"
#define XmNtabWidgetClass "tabWidgetClass"
#define XmCTabWidgetClass "TabWidgetClass"
/* Folder Constraint resources */
#define XmNtabFreePixmaps "tabFreePixmaps"
#define XmCTabFreePixmaps "TabFreePixmaps"
#define XmNtabInactivePixmap "tabInactivePixmap"
#define XmCTabInactivePixmap "TabInactivePixmap"
#define XmNtabManagedName "tabManagedName"
#define XmCTabManagedName "TabManagedName"
#define XmNtabManagedWidget "tabManagedWidget"
#define XmCTabManagedWidget "TabManagedWidget"
#define XmNtabPixmap "tabPixmap"
#define XmCTabPixmap "TabPixmap"
/* Folder callbacks */
typedef struct
{
int reason;
XEvent *event;
int pos;
int allowActivate;
int layoutNeeded;
} XmLFolderCallbackStruct;
/* Folder defines */
#define XmCORNER_NONE 0
#define XmCORNER_LINE 1
#define XmCORNER_ARC 2
#define XmFOLDER_TOP 0
#define XmFOLDER_LEFT 1
#define XmFOLDER_BOTTOM 2
#define XmFOLDER_RIGHT 3
#define XmRESIZE_STATIC 10
#define XmRESIZE_DYNAMIC 11
/* Grid resources */
#define XmNaddCallback "addCallback"
#define XmNallowColumnHide "allowColumnHide"
#define XmCAllowColumnHide "AllowColumnHide"
#define XmNallowColumnResize "allowColumnResize"
#define XmCAllowColumnResize "AllowColumnResize"
#define XmNallowDragSelected "allowDragSelected"
#define XmCAllowDragSelected "AllowDragSelected"
#define XmNallowDrop "allowDrop"
#define XmCAllowDrop "AllowDrop"
#define XmNallowRowHide "allowRowHide"
#define XmCAllowRowHide "AllowRowHide"
#define XmNallowRowResize "allowRowResize"
#define XmCAllowRowResize "AllowRowResize"
#define XmNbottomFixedCount "bottomFixedCount"
#define XmCBottomFixedCount "BottomFixedCount"
#define XmNbottomFixedMargin "bottomFixedMargin"
#define XmCBottomFixedMargin "BottomFixedMargin"
#define XmNcellDefaults "cellDefaults"
#define XmCCellDefaults "CellDefaults"
#define XmNcellDrawCallback "cellDrawCallback"
#define XmNcellDropCallback "cellDropCallback"
#define XmNcellFocusCallback "cellFocusCallback"
#define XmNcellPasteCallback "cellPasteCallback"
#define XmNdeleteCallback "deleteCallback"
#define XmNdeselectCallback "deselectCallback"
#define XmNeditCallback "editCallback"
#define XmNeditTranslations "editTranslations"
#define XmNfooterColumns "footerColumns"
#define XmCFooterColumns "FooterColumns"
#define XmNfooterRows "footerRows"
#define XmCFooterRows "FooterRows"
#define XmNglobalPixmapHeight "globalPixmapHeight"
#define XmCGlobalPixmapHeight "GlobalPixmapHeight"
#define XmNglobalPixmapWidth "globalPixmapWidth"
#define XmCGlobalPixmapWidth "GlobalPixmapWidth"
#define XmCGridSelectionPolicy "GridSelectionPolicy"
#define XmRGridSelectionPolicy "GridSelectionPolicy"
#define XmRGridSizePolicy "GridSizePolicy"
#define XmNheadingColumns "headingColumns"
#define XmCHeadingColumns "HeadingColumns"
#define XmNheadingRows "headingRows"
#define XmCHeadingRows "HeadingRows"
#define XmNhiddenColumns "hiddenColumns"
#define XmCHiddenColumns "HiddenColumns"
#define XmNhiddenRows "hiddenRows"
#define XmCHiddenRows "HiddenRows"
#define XmNhighlightRowMode "highlightRowMode"
#define XmCHighlightRowMode "HighlightRowMode"
#define XmNhorizontalSizePolicy "horizontalSizePolicy"
#define XmCHorizontalSizePolicy "HorizontalSizePolicy"
#define XmNhsbDisplayPolicy "hsbDisplayPolicy"
#define XmCHsbDisplayPolicy "HsbDisplayPolicy"
#define XmNimmediateDraw "immediateDraw"
#define XmCImmediateDraw "ImmediateDraw"
#define XmNlayoutFrozen "layoutFrozen"
#define XmCLayoutFrozen "LayoutFrozen"
#define XmNleftFixedCount "leftFixedCount"
#define XmCLeftFixedCount "LeftFixedCount"
#define XmNleftFixedMargin "leftFixedMargin"
#define XmCLeftFixedMargin "LeftFixedMargin"
#define XmNrightFixedCount "rightFixedCount"
#define XmCRightFixedCount "RightFixedCount"
#define XmNrightFixedMargin "rightFixedMargin"
#define XmCRightFixedMargin "RightFixedMargin"
#define XmNscrollBarMargin "scrollBarMargin"
#define XmCScrollBarMargin "ScrollBarMargin"
#define XmNscrollCallback "scrollCallback"
#define XmNscrollColumn "scrollColumn"
#define XmCScrollColumn "ScrollColumn"
#define XmNscrollRow "scrollRow"
#define XmCScrollRow "ScrollRow"
#define XmNsimpleHeadings "simpleHeadings"
#define XmCSimpleHeadings "SimpleHeadings"
#define XmNsimpleWidths "simpleWidths"
#define XmCSimpleWidths "SimpleWidths"
#define XmNselectCallback "selectCallback"
#define XmNselectForeground "selectForeground"
#define XmCSelectForeground "SelectForeground"
#define XmNselectBackground "selectBackground"
#define XmCSelectBackground "SelectBackground"
#define XmNshadowRegions "shadowRegions"
#define XmCShadowRegions "ShadowRegions"
#define XmNtextWidget "textWidget"
#define XmCTextWidget "TextWidget"
#define XmNtoggleTopColor "toggleTopColor"
#define XmCToggleTopColor "ToggleTopColor"
#define XmNtoggleBottomColor "toggleBottomColor"
#define XmCToggleBottomColor "ToggleBottomColor"
#define XmNtoggleSize "toggleSize"
#define XmCToggleSize "ToggleSize"
#define XmNtopFixedCount "topFixedCount"
#define XmCTopFixedCount "TopFixedCount"
#define XmNtopFixedMargin "topFixedMargin"
#define XmCTopFixedMargin "TopFixedMargin"
#define XmNtraverseTranslations "traverseTranslations"
#define XmNuseAverageFontWidth "useAverageFontWidth"
#define XmCUseAverageFontWidth "UseAverageFontWidth"
#define XmNverticalSizePolicy "verticalSizePolicy"
#define XmCVerticalSizePolicy "VerticalSizePolicy"
#define XmNvisibleColumns "visibleColumns"
#define XmCVisibleColumns "VisibleColumns"
#define XmNvisibleRows "visibleRows"
#define XmCVisibleRows "VisibleRows"
#define XmNvsbDisplayPolicy "vsbDisplayPolicy"
#define XmCVsbDisplayPolicy "VsbDisplayPolicy"
#define XmNiconSpacing "iconSpacing"
#define XmCIconSpacing "IconSpacing"
/* XFE Additions */
#define XmNhideUnhideButtons "hideUnhideButtons"
#define XmCHideUnhideButtons "HideUnhideButtons"
#define XmNsingleClickActivation "singleClickActivation"
#define XmCSingleClickActivation "SingleClickActivation"
#define XmNuseTextWidget "useTextWidget"
#define XmCUseTextWidget "UseTextWidget"
#define XmNcolumnSortType "columnSortType"
#define XmCColumnSortType "ColumnSortType"
#define XmRColumnSortType "ColumnSortType"
#if 0
#define XmNhideButtonTranslations "hideButtonTranslations"
#define XmNunhideButtonTranslations "unhideButtonTranslations"
#endif /*0*/
#define XmNminColumnWidth "minColumnWidth"
#define XmCMinColumnWidth "MinColumnWidth"
#define XmNenterCellCallback "enterCellCallback"
#define XmNleaveCellCallback "leaveCellCallback"
#define XmNenterGridCallback "enterGridCallback"
#define XmNleaveGridCallback "leaveGridCallback"
/* Grid Row/Column/Cell resources */
#define XmNrow "row"
#define XmCGridRow "row"
#define XmNrowHeight "rowHeight"
#define XmCRowHeight "RowHeight"
#define XmNrowPtr "rowPtr"
#define XmNrowRangeEnd "rowRangeEnd"
#define XmCRowRangeEnd "RowRangeEnd"
#define XmNrowRangeStart "rowRangeStart"
#define XmCRowRangeStart "RowRangeStart"
#define XmNrowSizePolicy "rowSizePolicy"
#define XmCRowSizePolicy "RowSizePolicy"
#define XmNrowStep "rowStep"
#define XmCRowStep "RowStep"
#define XmNrowType "rowType"
#define XmCRowType "RowType"
#define XmRRowType "RowType"
#define XmNrowUserData "rowUserData"
#define XmNcolumn "column"
#define XmCGridColumn "Column"
#define XmNcolumnPtr "columnPtr"
#define XmNcolumnRangeEnd "columnRangeEnd"
#define XmCColumnRangeEnd "ColumnRangeEnd"
#define XmNcolumnRangeStart "columnRangeStart"
#define XmCColumnRangeStart "ColumnRangeStart"
#define XmNcolumnResizable "columnResizable"
#define XmCColumnResizable "ColumnResizable"
#define XmNcolumnSizePolicy "columnSizePolicy"
#define XmCColumnSizePolicy "ColumnSizePolicy"
#define XmNcolumnHidden "columnHidden"
#define XmCColumnHidden "ColumnHidden"
#define XmNcolumnStep "columnStep"
#define XmCColumnStep "ColumnStep"
#define XmNcolumnType "columnType"
#define XmCColumnType "ColumnType"
#define XmRColumnType "ColumnType"
#define XmNcolumnWidth "columnWidth"
#define XmCColumnWidth "ColumnWidth"
#define XmNcolumnUserData "columnUserData"
#define XmNcellAlignment "cellAlignment"
#define XmCCellAlignment "CellAlignment"
#define XmRCellAlignment "CellAlignment"
#define XmNcellBackground "cellBackground"
#define XmCCellBackground "CellBackground"
#define XmRCellBorderType "CellBorderType"
#define XmNcellBottomBorderType "cellBottomBorderType"
#define XmCCellBottomBorderType "CellBottomBorderType"
#define XmNcellBottomBorderColor "cellBottomBorderColor"
#define XmCCellBottomBorderColor "CellBottomBorderColor"
#define XmNcellColumnSpan "cellColumnSpan"
#define XmCCellColumnSpan "CellColumnSpan"
#define XmNcellEditable "cellEditable"
#define XmCCellEditable "CellEditable"
#define XmNcellForeground "cellForeground"
#define XmCCellForeground "CellForeground"
#define XmNcellFontList "cellFontList"
#define XmCCellFontList "CellFontList"
#define XmNcellLeftBorderType "cellLeftBorderType"
#define XmCCellLeftBorderType "CellLeftBorderType"
#define XmNcellLeftBorderColor "cellLeftBorderColor"
#define XmCCellLeftBorderColor "CellLeftBorderColor"
#define XmNcellMarginBottom "cellMarginBottom"
#define XmCCellMarginBottom "CellMarginBottom"
#define XmNcellMarginLeft "cellMarginLeft"
#define XmCCellMarginLeft "CellMarginLeft"
#define XmNcellMarginRight "cellMarginRight"
#define XmCCellMarginRight "CellMarginRight"
#define XmNcellMarginTop "cellMarginTop"
#define XmCCellMarginTop "CellMarginTop"
#define XmNcellPixmap "cellPixmap"
#define XmCCellPixmap "CellPixmap"
#define XmNcellPixmapMask "cellPixmapMask"
#define XmCCellPixmapMask "CellPixmapMask"
#define XmNcellRightBorderType "cellRightBorderType"
#define XmCCellRightBorderType "CellRightBorderType"
#define XmNcellRightBorderColor "cellRightBorderColor"
#define XmCCellRightBorderColor "CellRightBorderColor"
#define XmNcellRowSpan "cellRowSpan"
#define XmCCellRowSpan "CellRowSpan"
#define XmNcellString "cellString"
#define XmNcellToggleSet "cellToggleSet"
#define XmCCellToggleSet "CellToggleSet"
#define XmNcellTopBorderType "cellTopBorderType"
#define XmCCellTopBorderType "CellTopBorderType"
#define XmNcellTopBorderColor "cellTopBorderColor"
#define XmCCellTopBorderColor "CellTopBorderColor"
#define XmNcellType "cellType"
#define XmCCellType "CellType"
#define XmRCellType "CellType"
#define XmNcellUserData "cellUserData"
/* Grid callbacks */
typedef struct _XmLGridDrawStruct
{
GC gc;
XRectangle *cellRect;
Dimension topMargin;
Dimension bottomMargin;
Dimension leftMargin;
Dimension rightMargin;
Pixel foreground;
Pixel background;
Pixel selectForeground;
Pixel selectBackground;
XmFontList fontList;
unsigned char alignment;
Boolean drawSelected;
int drawFocusType;
XmStringDirection stringDirection;
} XmLGridDrawStruct;
typedef struct _XmLGridCallbackStruct
{
int reason;
XEvent *event;
unsigned char rowType, columnType;
int row, column;
XRectangle *clipRect;
XmLGridDrawStruct *drawInfo;
void *object;
} XmLGridCallbackStruct;
#define XmCR_ADD_ROW 900
#define XmCR_ADD_COLUMN 901
#define XmCR_ADD_CELL 902
#define XmCR_CELL_DRAW 903
#define XmCR_CELL_DROP 904
#define XmCR_CELL_FOCUS_IN 905
#define XmCR_CELL_FOCUS_OUT 906
#define XmCR_CELL_PASTE 907
#define XmCR_CONF_TEXT 908
#define XmCR_PREF_WIDTH 909
#define XmCR_DELETE_ROW 910
#define XmCR_DELETE_COLUMN 911
#define XmCR_DELETE_CELL 912
#define XmCR_EDIT_BEGIN 913
#define XmCR_EDIT_INSERT 914
#define XmCR_EDIT_CANCEL 915
#define XmCR_EDIT_COMPLETE 916
#define XmCR_FREE_VALUE 917
#define XmCR_RESIZE_ROW 918
#define XmCR_RESIZE_COLUMN 919
#define XmCR_PREF_HEIGHT 920
#define XmCR_SCROLL_ROW 921
#define XmCR_SCROLL_COLUMN 922
#define XmCR_SELECT_CELL 923
#define XmCR_SELECT_COLUMN 924
#define XmCR_SELECT_ROW 925
#define XmCR_DESELECT_CELL 926
#define XmCR_DESELECT_COLUMN 927
#define XmCR_DESELECT_ROW 928
/* xfe added callback reason */
#define XmCR_RESIZE_GRID 929
#define XmCR_SHOW_POPUP 930
#define XmCR_SINGLECLICK 931
#define XmCR_ENTER_CELL 931
#define XmCR_ENTER_GRID 932
#define XmCR_LEAVE_CELL 933
#define XmCR_LEAVE_GRID 934
/* Grid defines */
#define XmCONTENT 0
#define XmHEADING 1
#define XmFOOTER 2
#define XmALL_TYPES 3
#define XmINVALID_TYPE 4
#define XmICON_CELL 0
#define XmPIXMAP_CELL 1
#define XmSTRING_CELL 2
#define XmBORDER_NONE 0
#define XmBORDER_LINE 1
#define XmBORDER_DASH 2
#define XmFORMAT_DELIMITED 1
#define XmFORMAT_XL 2
#define XmFORMAT_PAD 3
#define XmFORMAT_PASTE 4
#define XmFORMAT_DROP 5
#define XmSELECT_NONE 1
#define XmSELECT_SINGLE_ROW 2
#define XmSELECT_BROWSE_ROW 3
#define XmSELECT_MULTIPLE_ROW 4
#define XmSELECT_CELL 5
#define XmDRAW_FOCUS_NONE 1
#define XmDRAW_FOCUS_CELL 2
#define XmDRAW_FOCUS_LEFT 3
#define XmDRAW_FOCUS_MID 4
#define XmDRAW_FOCUS_RIGHT 5
#define XmTRAVERSE_EXTEND_DOWN 20
#define XmTRAVERSE_EXTEND_LEFT 21
#define XmTRAVERSE_EXTEND_RIGHT 22
#define XmTRAVERSE_EXTEND_UP 23
#define XmTRAVERSE_PAGE_DOWN 24
#define XmTRAVERSE_PAGE_LEFT 25
#define XmTRAVERSE_PAGE_RIGHT 26
#define XmTRAVERSE_PAGE_UP 27
#define XmTRAVERSE_TO_BOTTOM 28
#define XmTRAVERSE_TO_TOP 29
#define XmALIGNMENT_LEFT 0
#ifndef XmALIGNMENT_CENTER
#define XmALIGNMENT_CENTER 1
#endif
#define XmALIGNMENT_RIGHT 2
#define XmALIGNMENT_TOP_LEFT 3
#define XmALIGNMENT_TOP 4
#define XmALIGNMENT_TOP_RIGHT 5
#define XmALIGNMENT_BOTTOM_LEFT 6
#define XmALIGNMENT_BOTTOM 7
#define XmALIGNMENT_BOTTOM_RIGHT 8
/* xfe additions */
#define XmSORT_NONE 0
#define XmSORT_ASCENDING 1
#define XmSORT_DESCENDING 2
/* Progress resources */
#define XmNcompleteValue "completeValue"
#define XmCCompleteValue "CompleteValue"
#define XmNnumBoxes "numBoxes"
#define XmCNumBoxes "NumBoxes"
#define XmNmeterStyle "meterStyle"
#define XmCMeterStyle "MeterStyle"
#define XmRMeterStyle "MeterStyle"
#define XmNshowPercentage "showPercentage"
#define XmCShowPercentage "ShowPercentage"
#define XmNshowTime "showTime"
#define XmCShowTime "ShowTime"
/* Progress defines */
#define XmMETER_BAR 0
#define XmMETER_BOXES 1
/* Tree resources */
#define XmNcollapseCallback "collapseCallback"
#define XmNconnectingLineColor "connectingLineColor"
#define XmCConnectingLineColor "ConnectingLineColor"
#define XmNexpandCallback "expandCallback"
#define XmNlevelSpacing "levelSpacing"
#define XmCLevelSpacing "LevelSpacing"
#define XmNplusMinusColor "plusMinusColor"
#define XmCPlusMinusColor "PlusMinusColor"
#define XmNrowExpands "rowExpands"
#define XmCRowExpands "RowExpands"
#define XmNrowIsExpanded "rowIsExpanded"
#define XmCRowIsExpanded "RowIsExpanded"
#define XmNrowLevel "rowLevel"
#define XmCRowLevel "RowLevel"
#define XmNignorePixmaps "ignorePixmaps"
#define XmCIgnorePixmaps "IgnorePixmaps"
/* Tree callbacks */
typedef struct
{
int level;
Boolean expands;
Boolean isExpanded;
Pixmap pixmap, pixmask;
XmString string;
} XmLTreeRowDefinition;
#define XmCR_COLLAPSE_ROW 950
#define XmCR_EXPAND_ROW 951
/* Backwards compatibility */
#ifdef XmLBACKWARDS_COMPATIBILITY
#define XmNfooterColumnCount "footerColumns"
#define XmNfooterRowCount "footerRows"
#define XmNheadingColumnCount "headingColumns"
#define XmNheadingRowCount "headingRows"
#define XmNcellBottomBorderPixel "cellBottomBorderColor"
#define XmCCellBottomBorderPixel "CellBottomBorderColor"
#define XmNcellLeftBorderPixel "cellLeftBorderColor"
#define XmCCellLeftBorderPixel "CellLeftBorderColor"
#define XmNcellRightBorderPixel "cellRightBorderColor"
#define XmCCellRightBorderPixel "CellRightBorderColor"
#define XmNcellTopBorderPixel "cellTopBorderColor"
#define XmCCellTopBorderPixel "CellTopBorderColor"
#define XmTEXT_CELL 250
#define XmLABEL_CELL 251
typedef void XmLCGridRow;
typedef void XmLCGridColumn;
typedef void XmLCGridCell;
#endif
/* Utility defines */
#define XmDRAWNB_ARROW 0
#define XmDRAWNB_ARROWLINE 1
#define XmDRAWNB_DOUBLEARROW 2
#define XmDRAWNB_SQUARE 3
#define XmDRAWNB_DOUBLEBAR 4
#define XmDRAWNB_STRING 5
#define XmDRAWNB_SMALLARROW 6
#define XmDRAWNB_RIGHT 0
#define XmDRAWNB_LEFT 1
#define XmDRAWNB_UP 2
#define XmDRAWNB_DOWN 3
#define XmSTRING_RIGHT 0
#define XmSTRING_LEFT 1
#define XmSTRING_UP 2
#define XmSTRING_DOWN 3
enum { XmLRectInside, XmLRectOutside, XmLRectPartial };
typedef struct
{
int pos;
} XmLArrayItem;
typedef struct _XmLArrayRec *XmLArray;
typedef struct
{
char *name;
unsigned char value;
} XmLStringToUCharMap;
/* Utility functions */
typedef int (*XmLSortCompareFunc)(void *userData, void *l, void *r);
typedef int (*XmLArrayCompareFunc)(void *, void **, void **);
XmLArray XmLArrayNew(char autonumber, char growFast);
void XmLArrayFree(XmLArray array);
void XmLArrayAdd(XmLArray array, int pos, int count);
int XmLArrayDel(XmLArray array, int pos, int count);
int XmLArraySet(XmLArray array, int pos, void *item);
void *XmLArrayGet(XmLArray array, int pos);
int XmLArrayGetCount(XmLArray array);
int XmLArrayMove(XmLArray array, int newPos, int pos, int count);
int XmLArrayReorder(XmLArray array, int *newPositions,
int pos, int count);
int XmLArraySort(XmLArray array, XmLArrayCompareFunc compare,
void *userData, int pos, int count);
Boolean XmLCvtStringToUChar(Display *dpy, char *resname,
XmLStringToUCharMap *map, XrmValuePtr fromVal, XrmValuePtr toVal);
int XmLDateDaysInMonth(int m, int y);
int XmLDateWeekDay(int m, int d, int y);
void XmLDrawnButtonSetType(Widget w, int drawnType, int drawnDir);
void XmLDrawToggle(Widget w, Boolean state, Dimension size,
unsigned char alignment, GC gc, Pixel backgroundColor,
Pixel topColor, Pixel bottomColor, Pixel checkColor,
XRectangle *rect, XRectangle *clipRect);
XmFontList XmLFontListCopyDefault(Widget widget);
void XmLFontListGetDimensions(XmFontList fontList, short *width,
short *height, Boolean useAverageWidth);
void XmLInitialize(void);
int XmLMessageBox(Widget w, char *string, Boolean okOnly);
void XmLPixmapDraw(Widget w, Pixmap pixmap, Pixmap pixmask,
int pixmapWidth, int pixmapHeight, unsigned char alignment,
GC gc, XRectangle *rect, XRectangle *clipRect);
int XmLRectIntersect(XRectangle *r1, XRectangle *r2);
Widget XmLShellOfWidget(Widget w);
void XmLSort(void *base, int numItems, unsigned int itemSize,
XmLSortCompareFunc, void *userData);
void XmLStringDraw(Widget w, XmString string, XmStringDirection stringDir,
XmFontList fontList, unsigned char alignment, GC gc,
XRectangle *rect, XRectangle *clipRect);
void XmLStringDrawDirection(Display *dpy, Window win, XmFontList fontlist,
XmString string, GC gc, int x, int y, Dimension width,
unsigned char alignment, unsigned char layout_direction,
unsigned char drawing_direction);
void XmLWarning(Widget w, char *msg);
#ifdef XmL_CPP
}
#endif
#endif

View File

@@ -1,162 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
! Common Resources
value
XmNblankBackground : argument ('blankBackground', color);
XmNautoSelect : argument ('autoSelect', boolean);
XmNdebugLevel : argument ('debugLevel', integer);
! Folder Widget
procedure
XmLCreateFolder();
! Folder Resources
value
XmNcornerDimension : argument ('cornerDimension', integer);
XmNcornerStyle : argument ('cornerStyle', integer);
CornerNone : 0;
CornerLine : 1;
CornerArc : 2;
XmNinactiveBackground : argument ('inactiveBackground', color);
XmNinactiveForeground : argument ('inactiveForeground', color);
XmNpixmapMargin : argument ('pixmapMargin', integer);
ResizeStatic : 10;
ResizeDynamic : 11;
XmNrotateWhenLeftRight : argument ('rotateWhenRightLeft', boolean);
XmNtabPlacement : argument ('tabPlacement', integer);
FolderTop : 0;
FolderLeft : 1;
FolderBottom : 2;
FolderRight : 3;
XmNtabsPerRow : argument ('tabsPerRow', integer);
! Folder Constraint resources
XmNtabFreePixmaps : argument ('tabFreePixmaps', boolean);
XmNtabManagedName : argument ('tabManagedName', string);
XmNtabManagedWidget : argument ('tabManagedWidget', any);
! Grid Widget
procedure
XmLCreateGrid();
! Grid Resources
value
XmNallowColumnHide : argument ('allowColumnHide', boolean);
XmNallowColumnResize : argument ('allowColumnResize', boolean);
XmNallowDragSelected : argument ('allowDragSelected', boolean);
XmNallowDrop : argument ('allowDrop', boolean);
XmNallowRowHide : argument ('allowRowHide', boolean);
XmNallowRowResize : argument ('allowRowResize', boolean);
XmNbottomFixedCount : argument ('bottomFixedCount', integer);
XmNbottomFixedMargin : argument ('bottomFixedMargin', integer);
XmNfooterColumns : argument ('footerColumns', integer);
XmNfooterRows : argument ('footerRows', integer);
XmNglobalPixmapHeight : argument ('globalPixmapHeight', integer);
XmNglobalPixmapWidth : argument ('globalPixmapWidth', integer);
XmNheadingColumns : argument ('headingColumns', integer);
XmNheadingRows : argument ('headingRows', integer);
XmNhighlightRowMode : argument ('highlightRowMode', boolean);
XmNhorizontalSizePolicy : argument ('horizontalSizePolicy', integer);
XmNhsbDisplayPolicy : argument ('hsbDisplayPolicy', integer);
XmNimmediateDraw : argument ('immediateDraw', boolean);
XmNleftFixedCount : argument ('leftFixedCount', integer);
XmNleftFixedMargin : argument ('leftFixedMargin', integer);
XmNrightFixedCount : argument ('rightFixedCount', integer);
XmNrightFixedMargin : argument ('rightFixedMargin', integer);
XmNscrollBarMargin : argument ('scrollBarMargin', integer);
SelectNone : 1;
SelectSingleRow : 2;
SelectBrowseRow : 3;
SelectMultipleRow : 4;
SelectCell : 5;
XmNselectBackground : argument ('selectBackground', color);
XmNselectForeground : argument ('selectForeground', color);
XmNshadowRegions : argument ('shadowRegions', integer);
XmNsimpleHeadings : argument ('simpleHeadings', string);
XmNsimpleWidths : argument ('simpleWidths', string);
XmNtopFixedCount : argument ('topFixedCount', integer);
XmNtopFixedMargin : argument ('topFixedMargin', integer);
XmNuseAverageFontWidth : argument ('useAverageFontWidth', boolean);
XmNverticalSizePolicy : argument ('verticalSizePolicy', integer);
XmNvisibleColumns : argument ('visibleColumns', integer);
XmNvisibleRows : argument ('visibleRows', integer);
XmNvsbDisplayPolicy : argument ('vsbDisplayPolicy', integer);
! Grid Callbacks
value
XmNaddCallback : reason ('addCallback');
XmNcellDrawCallback : reason ('cellDrawCallback');
XmNcellDropCallback : reason ('cellDropCallback');
XmNcellFocusCallback : reason ('cellFocusCallback');
XmNcellPasteCallback : reason ('cellPasteCallback');
XmNdeleteCallback : reason ('deleteCallback');
XmNdeselectCallback : reason ('deselectCallback');
XmNeditCallback : reason ('editCallback');
XmNscrollCallback : reason ('scrollCallback');
XmNselectCallback : reason ('selectCallback');
! Progress Widget
procedure
XmLCreateProgress();
! Progress Resources
value
XmNcompleteValue : argument ('completeValue', integer);
XmNmeterStyle : argument ('meterStyle', integer);
MeterBar : 0;
MeterBoxes : 1;
XmNnumBoxes : argument ('numBoxes', integer);
XmNshowTime : argument ('showTime', boolean);
XmNshowPercentage : argument ('showPercentage', boolean);
! Tree Widget
procedure
XmLCreateTree();
! Tree Resources
value
XmNconnectingLineColor : argument ('connectingLineColor', color);
XmNlevelSpacing : argument ('levelSpacing', integer);
XmNplusMinusColor : argument ('plusMinusColor', color);
! Tree Callbacks
value
XmNexpandCallback : reason ('expandCallback');
XmNcollapseCallback : reason ('collapseCallback');

View File

@@ -1,168 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# This make file was copied from ns/cmd/xfe/XfeWidgets/tests/Makefile
# and tweaked. A lot of the rules and logic can probably be shared.
# Stuff should be shared in
#
#
DEPTH = ../../../..
ifdef XFE_WIDGETS_BUILD_UNUSED
UNUSED_CSRCS = \
demo.c \
prog1.c \
prog2.c \
prog3.c \
uil1.c \
util1.c \
$(NULL)
endif
CSRCS = \
$(UNUSED_CSRCS) \
folder1.c \
folder2.c \
folder3.c \
folder4.c \
grid1.c \
grid2.c \
grid3.c \
grid4.c \
grid5.c \
grid6.c \
tree1.c \
tree2.c \
tree3.c \
tree4.c \
tree5.c \
$(NULL)
REQUIRES = \
Microline
PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=.exe))
include $(DEPTH)/config/rules.mk
include $(DEPTH)/cmd/xfe/XfeWidgets/XfeWidgets.mk
all:: $(PROGS)
install:: $(PROGS)
LDFLAGS =
SHARED_XFE_LIBS = $(DIST)/bin/libXmL.$(DLL_SUFFIX)
STATIC_XFE_LIBS = $(DIST)/lib/libXmL.a
DIST_FLAGS = -L$(DIST)/bin
ifeq ($(OS_ARCH),AIX)
XFE_FLAGS = $(STATIC_XFE_LIBS)
else
XFE_FLAGS = $(SHARED_XFE_LIBS)
endif
ifeq ($(OS_ARCH),Linux)
-include $(DEPTH)/config/motif.mk
endif
XM_LD_FLAGS = -lMrm -lXm $(NS_MOTIF2_XP_LD_FLAGS)
X_LD_FLAGS = $(XM_LD_FLAGS) -lXt -lXmu -lXext -lX11
OS_BEFORE_FLAGS =
OS_AFTER_FLAGS =
ifeq ($(OS_ARCH),SunOS)
OS_BEFORE_LDFLAGS =\
-L/usr/dt/lib \
-L/usr/openwin/lib
OS_AFTER_LDFLAGS =\
-lw \
-lintl \
-lsocket \
-lnsl \
-lgen \
-lm \
-ldl
endif
ifeq ($(OS_ARCH),AIX)
OS_BEFORE_LDFLAGS =\
-L/usr/dt/lib
endif
ifeq ($(OS_ARCH),IRIX)
endif
ifeq ($(OS_ARCH),Linux)
OS_BEFORE_LDFLAGS = -L/usr/X11R6/lib
endif
ifeq ($(OS_ARCH),HP-UX)
OS_BEFORE_LDFLAGS = -L$(DIST)/bin
endif
LDFLAGS =\
$(OS_BEFORE_LDFLAGS) \
$(DIST_FLAGS) \
$(XFE_FLAGS) \
$(X_LD_FLAGS) \
$(OS_AFTER_LDFLAGS)
##
## Test dependancies
##
#OTHER_DEPS = Makefile $(XFE_FLAGS)
OTHER_DEPS = $(XFE_FLAGS)
##
## Resource source rule
##
#$(OBJDIR)/%.ad.c:: %.ad # Makefile
# @$(MAKE_OBJDIR)
# @echo 'char * fallback_resources[] = {' > $@; \
# ./ad2c $< >> $@; \
# echo '0};' >> $@
##
## Resource object rule
##
#$(OBJDIR)/%.ad.o: $(OBJDIR)/%.ad.c
# @$(MAKE_OBJDIR)
# $(CC) -o $@ -c $<
##
## Binary link rule
##
$(OBJDIR)/%.exe: $(OBJDIR)/%.o $(OTHER_DEPS)
@$(MAKE_OBJDIR)
$(XFE_PURIFY) $(CC) -o $@ $< $(LDFLAGS)

View File

@@ -1,173 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
# This make file was copied from ns/cmd/xfe/XfeWidgets/tests/Makefile
# and tweaked. A lot of the rules and logic can probably be shared.
# Stuff should be shared in
#
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
VPATH = @srcdir@
srcdir = @srcdir@
include $(DEPTH)/config/autoconf.mk
ifdef XFE_WIDGETS_BUILD_UNUSED
UNUSED_CSRCS = \
demo.c \
prog1.c \
prog2.c \
prog3.c \
uil1.c \
util1.c \
$(NULL)
endif
CSRCS = \
$(UNUSED_CSRCS) \
folder1.c \
folder2.c \
folder3.c \
folder4.c \
grid1.c \
grid2.c \
grid3.c \
grid4.c \
grid5.c \
grid6.c \
tree1.c \
tree2.c \
tree3.c \
tree4.c \
tree5.c \
$(NULL)
REQUIRES = \
Microline
PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=.exe))
include $(topsrcdir)/config/rules.mk
include $(topsrcdir)/cmd/xfe/XfeWidgets/XfeWidgets.mk
all:: $(PROGS)
install:: $(PROGS)
LDFLAGS =
SHARED_XFE_LIBS = $(DIST)/bin/libXmL.$(DLL_SUFFIX)
STATIC_XFE_LIBS = $(DIST)/lib/libXmL.a
DIST_FLAGS = -L$(DIST)/bin
ifeq ($(OS_ARCH),AIX)
XFE_FLAGS = $(STATIC_XFE_LIBS)
else
XFE_FLAGS = $(SHARED_XFE_LIBS)
endif
ifeq ($(OS_ARCH),Linux)
-include $(DEPTH)/config/motif.mk
endif
XM_LD_FLAGS = -lMrm -lXm $(NS_MOTIF2_XP_LD_FLAGS)
X_LD_FLAGS = $(XM_LD_FLAGS) -lXt -lXmu -lXext -lX11
OS_BEFORE_FLAGS =
OS_AFTER_FLAGS =
ifeq ($(OS_ARCH),SunOS)
OS_BEFORE_LDFLAGS =\
-L/usr/dt/lib \
-L/usr/openwin/lib
OS_AFTER_LDFLAGS =\
-lw \
-lintl \
-lsocket \
-lnsl \
-lgen \
-lm \
-ldl
endif
ifeq ($(OS_ARCH),AIX)
OS_BEFORE_LDFLAGS =\
-L/usr/dt/lib
endif
ifeq ($(OS_ARCH),IRIX)
endif
ifeq ($(OS_ARCH),Linux)
OS_BEFORE_LDFLAGS = -L/usr/X11R6/lib
endif
ifeq ($(OS_ARCH),HP-UX)
OS_BEFORE_LDFLAGS = -L$(DIST)/bin
endif
LDFLAGS =\
$(OS_BEFORE_LDFLAGS) \
$(DIST_FLAGS) \
$(XFE_FLAGS) \
$(X_LD_FLAGS) \
$(OS_AFTER_LDFLAGS)
##
## Test dependancies
##
#OTHER_DEPS = Makefile $(XFE_FLAGS)
OTHER_DEPS = $(XFE_FLAGS)
##
## Resource source rule
##
#$(OBJDIR)/%.ad.c:: %.ad # Makefile
# @$(MAKE_OBJDIR)
# @echo 'char * fallback_resources[] = {' > $@; \
# ./ad2c $< >> $@; \
# echo '0};' >> $@
##
## Resource object rule
##
#$(OBJDIR)/%.ad.o: $(OBJDIR)/%.ad.c
# @$(MAKE_OBJDIR)
# $(CC) -o $@ -c $<
##
## Binary link rule
##
$(OBJDIR)/%.exe: $(OBJDIR)/%.o $(OTHER_DEPS)
@$(MAKE_OBJDIR)
$(XFE_PURIFY) $(CC) -o $@ $< $(LDFLAGS)

File diff suppressed because it is too large Load Diff

View File

@@ -1,72 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/Label.h>
#include <XmL/Folder.h>
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, folder, form;
XmString str;
char buf[20];
int i;
shell = XtAppInitialize(&app, "Folder1", NULL, 0,
&argc, argv, NULL, NULL, 0);
folder = XtVaCreateManagedWidget("folder",
xmlFolderWidgetClass, shell,
NULL);
for (i = 0; i < 3; i++)
{
/* Add a tab and Form managed by the tab to the Folder */
sprintf(buf, "Tab %d", i);
str = XmStringCreateSimple(buf);
form = XmLFolderAddTabForm(folder, str);
XmStringFree(str);
/* Add a Label as a child of the Form */
sprintf(buf, "Form %d", i);
XtVaCreateManagedWidget(buf,
xmLabelWidgetClass, form,
XmNmarginWidth, 100,
XmNmarginHeight, 80,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
}
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,108 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/DrawnB.h>
#include <Xm/Form.h>
#include <Xm/Label.h>
#include <XmL/Folder.h>
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, form, folder, tab, folderForm;
XmString str;
char pageName[20], tabName[20];
int i;
shell = XtAppInitialize(&app, "Folder2", NULL, 0,
&argc, argv, NULL, NULL, 0);
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNmarginWidth, 8,
XmNmarginHeight, 8,
XmNshadowThickness, 0,
NULL);
folder = XtVaCreateManagedWidget("folder",
xmlFolderWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNtabPlacement, XmFOLDER_RIGHT,
XmNmarginWidth, 10,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
for (i = 0; i < 3; i++)
{
sprintf(pageName, "Page %d", i);
/* Add a tab (DrawnButton) to the Folder */
sprintf(tabName, "Tab %d", i);
str = XmStringCreateSimple(tabName);
tab = XtVaCreateManagedWidget("tab",
xmDrawnButtonWidgetClass, folder,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNlabelString, str,
XmNtabManagedName, pageName,
NULL);
XmStringFree(str);
/* Add a Form to the Folder which will appear in the page */
/* area. This Form will be managed by the tab created above */
/* because it has the same tabManagedName as the tab widget */
folderForm = XtVaCreateManagedWidget("folderForm",
xmFormWidgetClass, folder,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNtabManagedName, pageName,
NULL);
/* Add a Label as a child of the Form */
XtVaCreateManagedWidget(pageName,
xmLabelWidgetClass, folderForm,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNmarginWidth, 100,
XmNmarginHeight, 80,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
}
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,125 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>
#include <XmL/Folder.h>
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, form, folder, shellForm, label, button;
XmString str;
char buf[20];
int i;
static char tabName[6][20] =
{
"Standard",
"PTEL Server",
"NTEL Server",
"Advanced",
"Transfer Address",
"Multimedia"
};
shell = XtAppInitialize(&app, "Folder3", NULL, 0,
&argc, argv, NULL, NULL, 0);
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNmarginWidth, 10,
XmNmarginHeight, 10,
XmNshadowThickness, 0,
NULL);
folder = XtVaCreateManagedWidget("folder",
xmlFolderWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNtabsPerRow, 3,
XmNmarginWidth, 10,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
for (i = 0; i < 6; i++)
{
/* Add a tab and Form managed by the tab to the Folder */
str = XmStringCreateSimple(tabName[i]);
shellForm = XmLFolderAddTabForm(folder, str);
XmStringFree(str);
XtVaSetValues(shellForm,
XmNmarginWidth, 8,
XmNmarginHeight, 8,
NULL);
/* Add a Label as a child of the Form */
sprintf(buf, "Label For Page %d", i);
label = XtVaCreateManagedWidget(buf,
xmLabelWidgetClass, shellForm,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNmarginWidth, 100,
XmNmarginHeight, 80,
XmNtopAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
/* Add a Button to pages 0 and 1 */
if (i < 2)
{
button = XtVaCreateManagedWidget("Sample Button",
xmPushButtonWidgetClass, shellForm,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNbottomAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
XmNmarginWidth, 5,
NULL);
XtVaSetValues(label,
XmNbottomAttachment, XmATTACH_WIDGET,
XmNbottomWidget, button,
NULL);
}
else
XtVaSetValues(label,
XmNbottomAttachment, XmATTACH_FORM,
NULL);
}
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,228 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/DrawnB.h>
#include <Xm/Form.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>
#include <XmL/Folder.h>
void addTab();
void removeTab();
void activate();
#define sphere_width 16
#define sphere_height 16
static unsigned char sphere_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0xf0, 0x1f, 0x38, 0x3f,
0xb8, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf0, 0x1f, 0xe0, 0x0f,
0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
#define monitor_width 16
#define monitor_height 16
static unsigned char monitor_bits[] = {
0x00, 0x00, 0xf8, 0x3f, 0xf8, 0x3f, 0x18, 0x30, 0x58, 0x37, 0x18, 0x30,
0x58, 0x37, 0x18, 0x30, 0xf8, 0x3f, 0xf8, 0x3f, 0x80, 0x03, 0x80, 0x03,
0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00};
Widget folder, label;
Pixmap monitorPixmap, spherePixmap;
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, form, folderForm, addButton, removeButton;
Pixel black, grey;
shell = XtAppInitialize(&app, "Folder4", NULL, 0,
&argc, argv, NULL, NULL, 0);
XtVaSetValues(shell,
XmNallowShellResize, True,
NULL);
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNmarginWidth, 8,
XmNmarginHeight, 8,
XmNhorizontalSpacing, 4,
XmNverticalSpacing, 4,
XmNshadowThickness, 0,
NULL);
/* Create Pixmaps with grey background (from form) */
black = BlackPixelOfScreen(XtScreen(shell));
XtVaGetValues(form,
XmNbackground, &grey,
NULL);
spherePixmap = XCreatePixmapFromBitmapData(XtDisplay(shell),
DefaultRootWindow(XtDisplay(shell)),
sphere_bits, sphere_width, sphere_height,
black, grey,
DefaultDepthOfScreen(XtScreen(shell)));
monitorPixmap = XCreatePixmapFromBitmapData(XtDisplay(shell),
DefaultRootWindow(XtDisplay(shell)),
monitor_bits, monitor_width, monitor_height,
black, grey,
DefaultDepthOfScreen(XtScreen(shell)));
removeButton = XtVaCreateManagedWidget("Remove Tab",
xmPushButtonWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNrightAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNmarginWidth, 10,
NULL);
XtAddCallback(removeButton, XmNactivateCallback, removeTab, NULL);
addButton = XtVaCreateManagedWidget("Add Tab",
xmPushButtonWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNrightAttachment, XmATTACH_WIDGET,
XmNrightWidget, removeButton,
XmNbottomAttachment, XmATTACH_FORM,
XmNmarginWidth, 20,
NULL);
XtAddCallback(addButton, XmNactivateCallback, addTab, NULL);
folder = XtVaCreateManagedWidget("folder",
xmlFolderWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNtabsPerRow, 4,
XmNcornerStyle, XmCORNER_NONE,
XmNspacing, 1,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_WIDGET,
XmNbottomWidget, removeButton,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
XmNresizePolicy, XmRESIZE_DYNAMIC,
NULL);
XtAddCallback(folder, XmNactivateCallback, activate, NULL);
/* Add a Form to the Folder, this will appear in the page area */
folderForm = XtVaCreateManagedWidget("form",
xmFormWidgetClass, folder,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
NULL);
/* Add a Label as a child of the Form */
label = XtVaCreateManagedWidget("Page Area",
xmLabelWidgetClass, folderForm,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNmarginWidth, 100,
XmNmarginHeight, 80,
XmNrecomputeSize, False,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}
void addTab(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
Widget tabButton, form;
int count;
char tabName[30];
XmString str;
Pixmap pixmap;
XtVaGetValues(folder,
XmNtabCount, &count,
NULL);
/* Every other tab will have a sphere pixmap */
if (count % 2)
pixmap = spherePixmap;
else
pixmap = monitorPixmap;
/* Add a tab (DrawnButton) to the Folder */
sprintf(tabName, "Tab %d", count);
str = XmStringCreateSimple(tabName);
tabButton = XtVaCreateManagedWidget("tab",
xmDrawnButtonWidgetClass, folder,
XmNlabelString, str,
XmNmarginWidth, 8,
XmNtabPixmap, pixmap,
XmNtabInactivePixmap, pixmap,
NULL);
XmStringFree(str);
}
void removeTab(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
int count;
WidgetList tabs;
XtVaGetValues(folder,
XmNtabCount, &count,
XmNtabWidgetList, &tabs,
NULL);
if (!count)
return;
XtDestroyWidget(tabs[count - 1]);
}
void activate(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
XmLFolderCallbackStruct *cbs;
XmString str;
char buf[20];
int pos;
/* Change the Label in the page area to reflect */
/* the selected position */
cbs = (XmLFolderCallbackStruct *)callData;
sprintf(buf, "Page %d", cbs->pos);
str = XmStringCreateSimple(buf);
XtVaSetValues(label,
XmNlabelString, str,
NULL);
}

View File

@@ -1,67 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <XmL/Grid.h>
static char *data =
"Europe|CD-ROM|$29\n\
Yugoslovia|Floppy|$39\n\
North America|Tape|$29\n\
South America|CD-ROM|$49\n\
Japan|Tape|$49\n\
Russia|Floppy|$49\n\
Poland|CD-ROM|$39\n\
Norway|CD-ROM|$29\n\
England|Tape|$49\n\
Jordan|CD-ROM|$39";
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, grid;
shell = XtAppInitialize(&app, "Grid1", NULL, 0,
&argc, argv, NULL, NULL, 0);
grid = XtVaCreateManagedWidget("grid",
xmlGridWidgetClass, shell,
XmNrows, 10,
XmNvisibleRows, 7,
XmNcolumns, 3,
XmNsimpleWidths, "20c 8c 8c",
XmNhorizontalSizePolicy, XmVARIABLE,
NULL);
XmLGridSetStrings(grid, data);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,160 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/PushB.h>
#include <XmL/Grid.h>
void showSelected();
static char *data =
"Country|Media|Price\n\
Europe|CD-ROM|$29\n\
Yugoslovia|Floppy|$39\n\
North America|Tape|$29\n\
South America|CD-ROM|$49\n\
Japan|Tape|$49\n\
Russia|Floppy|$49\n\
Poland|CD-ROM|$39\n\
Norway|CD-ROM|$29\n\
England|Tape|$49\n\
Jordan|CD-ROM|$39";
Widget grid;
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, form, button;
XmString str;
shell = XtAppInitialize(&app, "Grid2", NULL, 0,
&argc, argv, NULL, NULL, 0);
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNmarginWidth, 5,
XmNmarginHeight, 5,
XmNverticalSpacing, 5,
XmNshadowThickness, 0,
NULL);
str = XmStringCreateSimple("Print Selected");
button = XtVaCreateManagedWidget("button",
xmPushButtonWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNbottomAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
XmNlabelString, str,
NULL);
XmStringFree(str);
XtAddCallback(button, XmNactivateCallback, showSelected, NULL);
/* Create a Grid in multiple row select mode with 1 heading row */
/* and 3 columns */
grid = XtVaCreateManagedWidget("grid",
xmlGridWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XtVaTypedArg, XmNselectBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNselectForeground, XmRString, "white", 6,
XtVaTypedArg, XmNblankBackground, XmRString, "white", 6,
XmNheadingRows, 1,
XmNvisibleRows, 7,
XmNcolumns, 3,
XmNsimpleWidths, "20c 10c 10c",
XmNhorizontalSizePolicy, XmVARIABLE,
XmNvsbDisplayPolicy, XmSTATIC,
XmNhighlightRowMode, True,
XmNselectionPolicy, XmSELECT_MULTIPLE_ROW,
XmNshadowThickness, 0,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_WIDGET,
XmNbottomWidget, button,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
/* Set default cell values for new cells (which will be the */
/* cells created when we add content rows) */
XtVaSetValues(grid,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
XmNcellLeftBorderType, XmBORDER_NONE,
XmNcellRightBorderType, XmBORDER_NONE,
XmNcellTopBorderType, XmBORDER_NONE,
XmNcellBottomBorderType, XmBORDER_NONE,
NULL);
/* Set default cell alignment for new cells in columns 0 and 1 */
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcolumnRangeStart, 0,
XmNcolumnRangeEnd, 1,
XmNcellAlignment, XmALIGNMENT_LEFT,
NULL);
/* Set default cell alignment for new cells in column 2 */
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcolumn, 2,
XmNcellAlignment, XmALIGNMENT_RIGHT,
NULL);
/* Add 10 content rows */
XtVaSetValues(grid,
XmNrows, 10,
NULL);
XmLGridSetStrings(grid, data);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}
void showSelected(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
int i, count, *pos;
printf ("Selected Rows: ");
count = XmLGridGetSelectedRowCount(grid);
if (count)
{
pos = (int *)malloc(sizeof(int) * count);
XmLGridGetSelectedRows(grid, pos, count);
for (i = 0; i < count; i++)
printf ("%d ", pos[i]);
free((char *)pos);
}
else
printf ("none");
printf ("\n");
}

View File

@@ -1,290 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/Text.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>
#include <XmL/Grid.h>
Widget label, text, grid, gridText;
static int busy = 0;
void cellFocus();
void textModify();
void copy();
void paste();
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, form, copyButton, pasteButton;
XmString str;
char buf[4];
int i;
shell = XtAppInitialize(&app, "Grid3", NULL, 0,
&argc, argv, NULL, NULL, 0);
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNshadowThickness, 0,
NULL);
str = XmStringCreateSimple("(A 1)");
label = XtVaCreateManagedWidget("label",
xmLabelWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNtopAttachment, XmATTACH_FORM,
XmNmarginHeight, 4,
XmNleftAttachment, XmATTACH_FORM,
XmNlabelString, str,
NULL);
XmStringFree(str);
pasteButton = XtVaCreateManagedWidget("Paste To Focus",
xmPushButtonWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNrightAttachment, XmATTACH_FORM,
XmNmarginHeight, 0,
NULL);
XtAddCallback(pasteButton, XmNactivateCallback, paste, NULL);
copyButton = XtVaCreateManagedWidget("Copy Selected",
xmPushButtonWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNrightAttachment, XmATTACH_WIDGET,
XmNrightWidget, pasteButton,
XmNmarginHeight, 0,
NULL);
XtAddCallback(copyButton, XmNactivateCallback, copy, NULL);
text = XtVaCreateManagedWidget("text",
xmTextWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "white", 6,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNtopAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, label,
XmNrightAttachment, XmATTACH_WIDGET,
XmNrightWidget, copyButton,
XmNmarginHeight, 0,
NULL);
/* Create a Grid with 1 heading column and 1 heading row */
grid = XtVaCreateManagedWidget("grid",
xmlGridWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNheadingColumns, 1,
XmNcolumns, 26,
XmNvisibleColumns, 8,
XmNhsbDisplayPolicy, XmSTATIC,
XmNrows, 100,
XmNheadingRows, 1,
XmNvisibleRows, 12,
XmNvsbDisplayPolicy, XmSTATIC,
XmNallowDragSelected, True,
XmNallowDrop, True,
XmNallowRowResize, True,
XmNallowColumnResize, True,
XmNtopAttachment, XmATTACH_WIDGET,
XmNtopWidget, text,
XmNtopOffset, 2,
XmNbottomAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
XmNshadowThickness, 0,
XmNselectionPolicy, XmSELECT_CELL,
NULL);
/* Make all cells in the content rows and content columns */
/* (the data cells) editable and set their borders and color */
XtVaSetValues(grid,
XmNcellEditable, True,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
XmNcellAlignment, XmALIGNMENT_RIGHT,
XmNcellTopBorderType, XmBORDER_NONE,
XmNcellLeftBorderType, XmBORDER_NONE,
XtVaTypedArg, XmNcellRightBorderColor, XmRString, "#606060", 8,
XtVaTypedArg, XmNcellBottomBorderColor, XmRString, "#606060", 8,
NULL);
/* Add callbacks which update the Label and to synchronize */
/* the Text widget outside the Grid with the one inside the Grid */
XtAddCallback(grid, XmNcellFocusCallback, cellFocus, NULL);
XtAddCallback(text, XmNvalueChangedCallback, textModify, NULL);
XtVaGetValues(grid,
XmNtextWidget, &gridText,
NULL);
XtAddCallback(gridText, XmNvalueChangedCallback, textModify, NULL);
XtVaSetValues(gridText,
XtVaTypedArg, XmNbackground, XmRString, "white", 6,
NULL);
/* Set the labels on the heading rows and columns */
for (i = 0; i < 26; i++)
{
sprintf(buf, "%c", 'A' + i);
XmLGridSetStringsPos(grid, XmHEADING, 0, XmCONTENT, i, buf);
}
for (i = 0; i < 100; i++)
{
sprintf(buf, "%d", i + 1);
XmLGridSetStringsPos(grid, XmCONTENT, i, XmHEADING, 0, buf);
}
XtRealizeWidget(shell);
XtAppMainLoop(app);
}
void cellFocus(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
XmLGridCallbackStruct *cbs;
XmLGridRow row;
XmLGridColumn column;
Widget sharedText;
XmString str;
char buf[10], *c;
cbs = (XmLGridCallbackStruct *)callData;
if (cbs->reason != XmCR_CELL_FOCUS_IN)
return;
/* Update the Label to reflect the new focus position */
sprintf(buf, "(%c %d)", 'A' + cbs->column, cbs->row + 1);
str = XmStringCreateSimple(buf);
XtVaSetValues(label,
XmNlabelString, str,
NULL);
XmStringFree(str);
/* Set the Text widget outside the Grid to the string contained */
/* in the new focus cell. We set busy here because this change will */
/* generate a valueChanged callback and we want to notify our */
/* valueChanged callback not to do any processing because of */
/* this change */
if (busy)
return;
busy = 1;
row = XmLGridGetRow(w, cbs->rowType, cbs->row);
column = XmLGridGetColumn(w, cbs->columnType, cbs->column);
XtVaGetValues(w,
XmNrowPtr, row,
XmNcolumnPtr, column,
XmNcellString, &str,
NULL);
c = 0;
if (str)
XmStringGetLtoR(str, XmSTRING_DEFAULT_CHARSET, &c);
if (c)
{
XmTextSetString(text, c);
XtFree(c);
XmTextSetSelection(text, 0, XmTextGetLastPosition(text),
CurrentTime);
}
else
XmTextSetString(text, "");
if (str)
XmStringFree(str);
busy = 0;
}
void textModify(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
int row, column;
Boolean focusIn;
XmString str;
char *c;
/* If either Text widget changes (the Grid's Text widget or */
/* the Text widget outside of the Grid), update the other one */
/* to reflect to change and update the Grid itself if the */
/* Text widget outside the Grid changes. We set busy in this */
/* function to keep the XmTextSetString() from causing this */
/* callback to be called while inside the callback. */
if (busy)
return;
busy = 1;
c = XmTextGetString(w);
if (w == gridText)
XmTextSetString(text, c);
else
{
XmLGridGetFocus(grid, &row, &column, &focusIn);
if (row != -1 && column != -1)
{
str = XmStringCreateSimple(c);
XtVaSetValues(grid,
XmNrow, row,
XmNcolumn, column,
XmNcellString, str,
NULL);
XmStringFree(str);
XmTextSetString(gridText, c);
}
}
XtFree(c);
busy = 0;
}
void copy(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
XmLGridCopySelected(grid, CurrentTime);
}
void paste(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
/* This pastes starting at the current focus cell, an alternative */
/* method of pasting would be to have the user select an area */
/* to paste into. To perform this, we could get the selected area */
/* and use XmLGridPastePos() to paste into that area */
XmLGridPaste(grid);
}

View File

@@ -1,285 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/PushB.h>
#include <Xm/Form.h>
#include <XmL/Grid.h>
void cellSelect();
void showSelected();
#define HEADINGFONT "-*-helvetica-bold-o-*--*-100-*-*-*-*-iso8859-1"
#define CONTENTFONT "-*-helvetica-medium-r-*--*-100-*-*-*-*-iso8859-1"
#define check_width 9
#define check_height 9
static unsigned char check_bits[] = {
0x00, 0x01, 0x80, 0x01, 0xc0, 0x00, 0x61, 0x00, 0x37, 0x00, 0x3e, 0x00,
0x1c, 0x00, 0x08, 0x00, 0x00, 0x00};
#define nocheck_width 9
#define nocheck_height 9
static char nocheck_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
static char *data[20] =
{
"3|Bob Thompson|bobt@teledyne.com",
"12|Darl Simon|ds@atg.org",
"14|Jacq Frontier|jf@terrax.com",
"19|Patty Lee|patlee@isis.com",
"22|Michal Barnes|mickeyb@softorb.com",
"23|Dave Schultz|daves@timing.com",
"23|Eric Stanley|ericst@aldor.com",
"29|Tim Winters|timw@terra.com",
"31|Agin Tomitu|agt@umn.edu",
"33|Betty Tinner|bett@ost.edu",
"37|Tom Smith|tsmith@netwld.com",
"38|Rick Wild|raw@mlsoft.com",
"41|Al Joyce|aj@ulm.edu",
"41|Tim Burtan|timb@autoc.com",
"41|George Marlin|gjm@eyeln.com",
"41|Bill Boxer|billb@idesk.com",
"41|Maria Montez|marm@ohio.edu",
"41|Yin Fang|aj@utxs.edu",
"41|Suzy Saps|ss@umg.edu",
"41|Jerry Rodgers|jr@lyra.com",
};
Pixmap nocheckPix, checkPix;
Widget grid;
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, form, button;
Pixel blackPixel, whitePixel;
Pixmap pix;
int i;
shell = XtAppInitialize(&app, "Grid4", NULL, 0,
&argc, argv, NULL, NULL, 0);
/* Create the pixmaps used for checkmarks */
blackPixel = BlackPixelOfScreen(XtScreen(shell));
whitePixel = WhitePixelOfScreen(XtScreen(shell));
checkPix = XCreatePixmapFromBitmapData(XtDisplay(shell),
DefaultRootWindow(XtDisplay(shell)),
check_bits, check_width, check_height,
blackPixel, whitePixel,
DefaultDepthOfScreen(XtScreen(shell)));
nocheckPix = XCreatePixmapFromBitmapData(XtDisplay(shell),
DefaultRootWindow(XtDisplay(shell)),
nocheck_bits, nocheck_width, nocheck_height,
blackPixel, whitePixel,
DefaultDepthOfScreen(XtScreen(shell)));
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNshadowThickness, 0,
NULL);
button = XtVaCreateManagedWidget("Show Selected",
xmPushButtonWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNbottomAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
NULL);
XtAddCallback(button, XmNactivateCallback, showSelected, NULL);
/* Create a Grid with 4 columns. We set the fontList in this */
/* function for the Grid to use when calculating the visible rows */
grid = XtVaCreateManagedWidget("grid",
xmlGridWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XtVaTypedArg, XmNfontList, XmRString, CONTENTFONT,
strlen(CONTENTFONT) + 1,
XmNcolumns, 4,
XmNsimpleWidths, "3c 4c 17c 20c",
XmNhorizontalSizePolicy, XmVARIABLE,
XmNvsbDisplayPolicy, XmSTATIC,
XmNvisibleRows, 13,
XmNselectionPolicy, XmSELECT_NONE,
XmNhighlightRowMode, True,
XmNshadowType, XmSHADOW_ETCHED_IN,
XmNtopAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_WIDGET,
XmNbottomWidget, button,
NULL);
XtAddCallback(grid, XmNselectCallback, cellSelect, NULL);
/* Freeze the Grid's layout since we will be making changes which */
/* would cause the Grid to recompute its layout. The Grid will */
/* recompute its layout when layoutFrozen is set back to False */
XtVaSetValues(grid,
XmNlayoutFrozen, True,
NULL);
/* Set defaults for new cells and aligments for new cells in */
/* columns 1-3. Then, add a heading row */
XtVaSetValues(grid,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellFontList, XmRString, HEADINGFONT,
strlen(HEADINGFONT) + 1,
XtVaTypedArg, XmNcellBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNcellForeground, XmRString, "white", 6,
XmNcellLeftBorderType, XmBORDER_NONE,
XmNcellRightBorderType, XmBORDER_NONE,
XmNcellTopBorderType, XmBORDER_NONE,
XmNcellBottomBorderType, XmBORDER_NONE,
NULL);
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcolumn, 1,
XmNcellAlignment, XmALIGNMENT_RIGHT,
NULL);
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcolumnRangeStart, 2,
XmNcolumnRangeEnd, 3,
XmNcellAlignment, XmALIGNMENT_LEFT,
NULL);
XmLGridAddRows(grid, XmHEADING, -1, 1);
/* Set the headings */
XmLGridSetStrings(grid, "OD|Qty|Name|EMail Addr");
/* Set defaults for new cells. Also, set the default cell type */
/* for cells in column 0 to pixmap cell. Then add the content rows */
XtVaSetValues(grid,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellFontList, XmRString, CONTENTFONT,
strlen(CONTENTFONT) + 1,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
XtVaTypedArg, XmNcellForeground, XmRString, "black", 6,
XmNcellBottomBorderType, XmBORDER_LINE,
XtVaTypedArg, XmNcellBottomBorderColor, XmRString, "black", 6,
NULL);
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcolumn, 0,
XmNcellType, XmPIXMAP_CELL,
NULL);
XmLGridAddRows(grid, XmCONTENT, -1, 20);
/* Set the content rows, Rows 2, 4, 5, 8 and 13 will have checkmarks */
for (i = 0; i < 20; i++)
{
XmLGridSetStringsPos(grid, XmCONTENT, i, XmCONTENT, 1, data[i]);
if (i == 2 || i == 4 || i == 5 || i == 8 || i == 13)
pix = checkPix;
else
pix = nocheckPix;
XtVaSetValues(grid,
XmNcolumn, 0,
XmNrow, i,
XmNcellPixmap, pix,
NULL);
}
XtVaSetValues(grid,
XmNlayoutFrozen, False,
NULL);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}
void showSelected(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
XmLGridRow row;
XmLGridColumn column;
Pixmap pix;
int i, n;
/* Display the selected rows, these are the rows which have a */
/* checkPix Pixmap in the first cell in the row */
printf ("Selected Rows: ");
XtVaGetValues(grid,
XmNrows, &n,
NULL);
for (i = 0; i < n; i++)
{
row = XmLGridGetRow(grid, XmCONTENT, i);
column = XmLGridGetColumn(grid, XmCONTENT, 0);
XtVaGetValues(grid,
XmNrowPtr, row,
XmNcolumnPtr, column,
XmNcellPixmap, &pix,
NULL);
if (pix == checkPix)
printf ("%d ", i);
}
printf ("\n");
}
void cellSelect(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
XmLGridCallbackStruct *cbs;
XmLGridRow row;
XmLGridColumn column;
Pixmap pix;
cbs = (XmLGridCallbackStruct *)callData;
if (cbs->reason != XmCR_SELECT_CELL)
return;
if (cbs->rowType != XmCONTENT)
return;
/* Toggle the Pixmap in the first cell */
row = XmLGridGetRow(w, cbs->rowType, cbs->row);
column = XmLGridGetColumn(w, XmCONTENT, 0);
XtVaGetValues(w,
XmNrowPtr, row,
XmNcolumnPtr, column,
XmNcellPixmap, &pix,
NULL);
if (pix == nocheckPix)
pix = checkPix;
else
pix = nocheckPix;
XtVaSetValues(w,
XmNrow, cbs->row,
XmNcolumn, 0,
XmNcellPixmap, pix,
NULL);
}

View File

@@ -1,202 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <XmL/Grid.h>
#define TITLEFONT "-*-helvetica-bold-r-*--*-140-*-*-*-*-iso8859-1"
#define BOLDFONT "-*-helvetica-bold-r-*--*-120-*-*-*-*-iso8859-1"
#define TEXTFONT "-*-helvetica-medium-r-*--*-100-*-*-*-*-iso8859-1"
static char *data =
"|1996 Income Summary\n\
|Shampoo|Conditioner|Soap|Total\n\
Revenues:\n\
Sales|$ 1,600,000|$ 1,000,000|$ 800,000|$ 3,400,000\n\
Less Discounts|(16,000)|(10,000)|(8,000)|(34,000)\n\
Less Return Allowance|(8,000)|(5,000)|(4,000)|(17,000)\n\
Net Revenue|1,576,000|985,000|792,000|3,349,000\n\
\n\
Less Expenses:\n\
Cost of Goods Sold|(640,000)|(330,000)|(264,000)|(1,234,000)\n\
Salary Expense|(380,000)|(280,000)|(180,000)|(840,000)\n\
Marketing Expense|(157,600)|(98,500)|(79,200)|(335,300)\n\
Rent Expense|(36,000)|(36,000)|(36,000)|(108,000)\n\
Misc. Other Expense|(36,408)|(22,335)|(16,776)|(75,519)\n\
Total Expenses|(1,250,008)|(766,835)|(575,976)|(2,592,819)\n\
\n\
Income Tax Expense|(130,397)|(87,266)|(86,410)|(304,072)\n\
Net Income|195,595|130,899|129,614|456,109";
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, grid;
int i, r;
shell = XtAppInitialize(&app, "Grid5", NULL, 0,
&argc, argv, NULL, NULL, 0);
grid = XtVaCreateManagedWidget("grid",
xmlGridWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XmNheadingColumns, 1,
XmNcolumns, 3,
XmNfooterColumns, 1,
XmNsimpleWidths, "24c 11c 11c 11c 11c",
XmNvisibleColumns, 10,
XmNvisibleRows, 14,
XtVaTypedArg, XmNfontList, XmRString, TEXTFONT,
strlen(TEXTFONT) + 1,
XmNselectionPolicy, XmSELECT_NONE,
NULL);
XtVaSetValues(grid,
XmNlayoutFrozen, True,
NULL);
/* Add 'Income Summary' heading row with yellow background */
XtVaSetValues(grid,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellBackground, XmRString, "#FFFF00", 8,
XtVaTypedArg, XmNcellForeground, XmRString, "#000080", 8,
XmNcellLeftBorderType, XmBORDER_NONE,
XmNcellRightBorderType, XmBORDER_NONE,
XmNcellTopBorderType, XmBORDER_NONE,
XtVaTypedArg, XmNcellBottomBorderColor, XmRString, "black", 6,
XmNcellAlignment, XmALIGNMENT_CENTER,
NULL);
XmLGridAddRows(grid, XmHEADING, -1, 1);
/* Set span on '1996 Income Summary' cell in heading row */
XtVaSetValues(grid,
XmNrowType, XmHEADING,
XmNrow, 0,
XmNcolumn, 0,
XmNcellColumnSpan, 2,
XtVaTypedArg, XmNcellFontList, XmRString, TITLEFONT,
strlen(TITLEFONT) + 1,
NULL);
/* Add 'Shampoo Conditioner Soap' heading row with white background */
XtVaSetValues(grid,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellFontList, XmRString, BOLDFONT,
strlen(BOLDFONT) + 1,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
XtVaTypedArg, XmNcellForeground, XmRString, "black", 6,
XmNcellBottomBorderType, XmBORDER_NONE,
NULL);
XmLGridAddRows(grid, XmHEADING, -1, 1);
/* Add content and footer rows with heading column 0 left justified */
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcellAlignment, XmALIGNMENT_RIGHT,
XtVaTypedArg, XmNcellFontList, XmRString, TEXTFONT,
strlen(TEXTFONT) + 1,
NULL);
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcolumnType, XmHEADING,
XmNcolumn, 0,
XmNcellAlignment, XmALIGNMENT_LEFT,
NULL);
XmLGridAddRows(grid, XmCONTENT, -1, 15);
/* Add footer row with blue background */
XtVaSetValues(grid,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellForeground, XmRString, "white", 6,
XtVaTypedArg, XmNcellBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNcellFontList, XmRString, BOLDFONT,
strlen(BOLDFONT) + 1,
NULL);
XmLGridAddRows(grid, XmFOOTER, -1, 1);
/* Bold 'Revenues' cell */
XtVaSetValues(grid,
XmNcolumnType, XmHEADING,
XmNcolumn, 0,
XmNrow, 0,
XtVaTypedArg, XmNcellFontList, XmRString, BOLDFONT,
strlen(BOLDFONT) + 1,
NULL);
/* Bold 'Less Expenses' cell */
XtVaSetValues(grid,
XmNcolumnType, XmHEADING,
XmNcolumn, 0,
XmNrow, 6,
XtVaTypedArg, XmNcellFontList, XmRString, BOLDFONT,
strlen(BOLDFONT) + 1,
NULL);
/* Grey middle and footer content column */
XtVaSetValues(grid,
XmNcolumnType, XmALL_TYPES,
XmNcolumnRangeStart, 2,
XmNcolumnRangeEnd, 4,
XmNcolumnStep, 2,
XtVaTypedArg, XmNcellBackground, XmRString, "#E8E8E8", 8,
NULL);
/* Grey 'Conditioner' and 'Total' cell in heading row 1 */
XtVaSetValues(grid,
XmNrowType, XmHEADING,
XmNrow, 1,
XmNcolumnType, XmALL_TYPES,
XmNcolumnRangeStart, 2,
XmNcolumnRangeEnd, 4,
XmNcolumnStep, 2,
XtVaTypedArg, XmNcellBackground, XmRString, "#E8E8E8", 8,
NULL);
/* Blue and bold 'Net Revenue' and 'Total Expenses' rows */
XtVaSetValues(grid,
XmNrowRangeStart, 4,
XmNrowRangeEnd, 12,
XmNrowStep, 8,
XmNcolumnType, XmALL_TYPES,
XtVaTypedArg, XmNcellForeground, XmRString, "white", 6,
XtVaTypedArg, XmNcellBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNcellFontList, XmRString, BOLDFONT,
strlen(BOLDFONT) + 1,
NULL);
XtVaSetValues(grid,
XmNlayoutFrozen, False,
NULL);
XmLGridSetStrings(grid, data);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,465 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/Text.h>
#include <XmL/Grid.h>
/* DATABASE PROTOTYPE FUNCTIONS */
int dbTableNumRows = 14;
int dbTableNumColumns = 5;
typedef enum {
ID, Desc, Price, Qty, UnitPrice, Buyer
}
DbTableColumnID;
typedef struct
{
DbTableColumnID id;
char label[15];
int width;
unsigned char cellAlignment;
Boolean cellEditable;
} DbTableColumn;
DbTableColumn dbTableColumns[] =
{
{ Desc, "Description", 16, XmALIGNMENT_LEFT, True },
{ Price, "Price", 9, XmALIGNMENT_LEFT, True },
{ Qty, "Qty", 5, XmALIGNMENT_LEFT, True },
{ UnitPrice, "Unit Prc", 9, XmALIGNMENT_LEFT, False },
{ Buyer, "Buyer", 15, XmALIGNMENT_LEFT, True },
};
typedef struct
{
char key[10];
char desc[20];
float price;
int qty;
char buyer[20];
} DbTableRow;
DbTableRow dbTableRows[] =
{
{ "key01", "Staples", 1.32, 100, "Tim Pick" },
{ "key02", "Notebooks", 1.11, 4, "Mary Miner" },
{ "key03", "3-Ring Binders", 2.59, 2, "Mary Miner" },
{ "key04", "Pads", 1.23, 3, "Tim Pick" },
{ "key05", "Scissors", 4.41, 1, "Mary Miner" },
{ "key06", "Pens", .29, 4, "Mary Miner" },
{ "key07", "Pencils", .10, 5, "Tim Pick" },
{ "key08", "Markers", .95, 3, "Mary Miner" },
{ "key09", "Fax Paper", 3.89, 100, "Bob Coal" },
{ "key10", "3.5\" Disks", 15.23, 30, "Tim Pick" },
{ "key11", "8mm Tape", 32.22, 2, "Bob Coal" },
{ "key12", "Toner", 35.69, 1, "Tim Pick" },
{ "key13", "Paper Cups", 4.25, 3, "Bob Coal" },
{ "key14", "Paper Clips", 2.09, 3, "Tim Pick" },
};
DbTableRow *dbFindRow(rowKey)
char *rowKey;
{
int i;
for (i = 0; i < dbTableNumRows; i++)
if (!strcmp(rowKey, dbTableRows[i].key))
return &dbTableRows[i];
return 0;
}
int dbCompareRowKeys(userData, l, r)
void *userData;
void *l;
void *r;
{
DbTableRow *dbRow1, *dbRow2;
float u1, u2;
dbRow1 = dbFindRow(*(char **)l);
dbRow2 = dbFindRow(*(char **)r);
switch ((int)userData)
{
case Desc:
return strcmp(dbRow1->desc, dbRow2->desc);
case Price:
u1 = dbRow1->price - dbRow2->price;
if (u1 < 0)
return -1;
else if (u1 == 0)
return 0;
return 1;
case Qty:
return dbRow1->qty - dbRow2->qty;
case UnitPrice:
u1 = dbRow1->price / (float)dbRow1->qty;
u2 = dbRow2->price / (float)dbRow2->qty;
if (u1 < u2)
return -1;
else if (u1 == u2)
return 0;
else
return 1;
case Buyer:
return strcmp(dbRow1->buyer, dbRow2->buyer);
}
return (int)(dbRow1 - dbRow2);
}
char **dbGetRowKeysSorted(sortColumnID)
int sortColumnID;
{
char **keys;
int i;
keys = (char **)malloc(sizeof(char *) * dbTableNumRows);
for (i = 0; i < dbTableNumRows; i++)
keys[i] = dbTableRows[i].key;
XmLSort(keys, dbTableNumRows, sizeof(char *),
dbCompareRowKeys, (void *)sortColumnID);
return keys;
}
/* GRID FUNCTIONS */
void setRowKeysInGridSorted(grid, sortColumnID)
Widget grid;
int sortColumnID;
{
char **keys;
int i;
keys = dbGetRowKeysSorted(sortColumnID);
/* Place a pointer to each row key in each rows userData */
for (i = 0; i < dbTableNumRows; i++)
XtVaSetValues(grid,
XmNrow, i,
XmNrowUserData, (XtPointer)keys[i],
NULL);
free((char *)keys);
}
void cellSelect(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
XmLGridCallbackStruct *cbs;
XmLGridColumn column;
XtPointer columnUserData;
cbs = (XmLGridCallbackStruct *)callData;
if (cbs->rowType != XmHEADING)
return;
/* Cancel any edits in progress */
XmLGridEditCancel(w);
column = XmLGridGetColumn(w, cbs->columnType, cbs->column);
XtVaGetValues(w,
XmNcolumnPtr, column,
XmNcolumnUserData, &columnUserData,
NULL);
XtVaSetValues(w,
XmNcolumn, cbs->column,
XmNcolumnSortType, XmSORT_ASCENDING,
NULL);
setRowKeysInGridSorted(w, (DbTableColumnID)columnUserData);
XmLGridRedrawAll(w);
}
void cellDraw(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
XmLGridCallbackStruct *cbs;
XmLGridDrawStruct *ds;
XmLGridRow row;
XmLGridColumn column;
XtPointer rowUserData, columnUserData;
DbTableRow *dbRow;
XRectangle cellRect;
int horizMargin, vertMargin;
XmString str;
char buf[50];
cbs = (XmLGridCallbackStruct *)callData;
if (cbs->rowType != XmCONTENT)
return;
ds = cbs->drawInfo;
/* Retrieve userData from the cells row */
row = XmLGridGetRow(w, cbs->rowType, cbs->row);
XtVaGetValues(w,
XmNrowPtr, row,
XmNrowUserData, &rowUserData,
NULL);
/* Retrieve userData from cells column */
column = XmLGridGetColumn(w, cbs->columnType, cbs->column);
XtVaGetValues(w,
XmNcolumnPtr, column,
XmNcolumnUserData, &columnUserData,
NULL);
/* Retrieve the cells value from the database */
dbRow = dbFindRow((char *)rowUserData);
switch ((DbTableColumnID)columnUserData)
{
case Desc:
sprintf(buf, "%s", dbRow->desc);
break;
case Price:
sprintf(buf, "$%4.2f", dbRow->price);
break;
case Qty:
sprintf(buf, "%d", dbRow->qty);
break;
case UnitPrice:
sprintf(buf, "$%4.2f", dbRow->price / (float)dbRow->qty);
break;
case Buyer:
sprintf(buf, "%s", dbRow->buyer);
break;
}
/* Compensate for cell margins */
cellRect = *ds->cellRect;
horizMargin = ds->leftMargin + ds->rightMargin;
vertMargin = ds->topMargin + ds->bottomMargin;
if (horizMargin >= (int)cellRect.width ||
vertMargin >= (int)cellRect.height)
return;
cellRect.x += ds->leftMargin;
cellRect.y += ds->topMargin;
cellRect.width -= horizMargin;
cellRect.height -= vertMargin;
/* Draw the string */
str = XmStringCreateSimple(buf);
if (ds->drawSelected == True)
XSetForeground(XtDisplay(w), ds->gc, ds->selectForeground);
else
XSetForeground(XtDisplay(w), ds->gc, ds->foreground);
XmLStringDraw(w, str, ds->stringDirection, ds->fontList,
ds->alignment, ds->gc, &cellRect, cbs->clipRect);
XmStringFree(str);
}
void cellEdit(w, clientData, callData)
Widget w;
XtPointer clientData;
XtPointer callData;
{
XmLGridCallbackStruct *cbs;
XmLGridRow row;
XmLGridColumn column;
XtPointer rowUserData, columnUserData;
DbTableRow *dbRow;
Widget text;
float f;
int i;
char *value;
Boolean redrawRow;
cbs = (XmLGridCallbackStruct *)callData;
/* For a production version, this function should also
handle XmCR_EDIT_INSERT by retrieving the current value
from the database and performing an XmTextSetString on
the text widget in the grid with that value. This allows
a user to hit insert or F2 to modify an existing cell value */
if (cbs->reason != XmCR_EDIT_COMPLETE)
return;
/* Get the value the user just typed in */
XtVaGetValues(w,
XmNtextWidget, &text,
NULL);
value = XmTextGetString(text);
if (!value)
return;
/* Retrieve userData from the cells row */
row = XmLGridGetRow(w, cbs->rowType, cbs->row);
XtVaGetValues(w,
XmNrowPtr, row,
XmNrowUserData, &rowUserData,
NULL);
/* Retrieve userData from cells column */
column = XmLGridGetColumn(w, cbs->columnType, cbs->column);
XtVaGetValues(w,
XmNcolumnPtr, column,
XmNcolumnUserData, &columnUserData,
NULL);
/* Set new value in the database */
redrawRow = False;
dbRow = dbFindRow((char *)rowUserData);
switch ((DbTableColumnID)columnUserData)
{
case Desc:
if ((int)strlen(value) < 20)
strcpy(dbRow->desc, value);
break;
case Price:
if (sscanf(value, "%f", &f) == 1)
{
dbRow->price = f;
redrawRow = True;
}
break;
case Qty:
if (sscanf(value, "%d", &i) == 1)
{
dbRow->qty = i;
redrawRow = True;
}
break;
case Buyer:
if ((int)strlen(value) < 20)
strcpy(dbRow->buyer, value);
break;
}
/* Redraw the row if we need to redisplay unit price */
if (redrawRow == True)
XmLGridRedrawRow(w, cbs->rowType, cbs->row);
/* Set the cellString to NULL - its is set to the value the
user typed in the text widget at this point */
XtVaSetValues(w,
XmNrow, cbs->row,
XmNcolumn, cbs->column,
XmNcellString, NULL,
NULL);
XtFree(value);
}
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, grid;
XmString str;
int i;
shell = XtAppInitialize(&app, "Grid6", NULL, 0,
&argc, argv, NULL, NULL, 0);
grid = XtVaCreateManagedWidget("grid",
xmlGridWidgetClass, shell,
XmNhorizontalSizePolicy, XmVARIABLE,
XmNvisibleRows, 10,
XmNvsbDisplayPolicy, XmSTATIC,
XmNselectionPolicy, XmSELECT_NONE,
XmNshadowThickness, 0,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
NULL);
XtAddCallback(grid, XmNcellDrawCallback, cellDraw, NULL);
XtAddCallback(grid, XmNeditCallback, cellEdit, NULL);
XtAddCallback(grid, XmNselectCallback, cellSelect, NULL);
XtVaSetValues(grid,
XmNlayoutFrozen, True,
NULL);
XmLGridAddColumns(grid, XmCONTENT, -1, dbTableNumColumns);
/* Setup columns and column cell defaults based on */
/* database description */
for (i = 0; i < dbTableNumColumns; i++)
{
/* Set the width and the id on the column */
XtVaSetValues(grid,
XmNcolumn, i,
XmNcolumnUserData, (XtPointer)dbTableColumns[i].id,
XmNcolumnWidth, dbTableColumns[i].width,
NULL);
/* Set the default cell alignment and editibility for */
/* cells in the column */
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcolumn, i,
XmNcellAlignment, dbTableColumns[i].cellAlignment,
XmNcellEditable, dbTableColumns[i].cellEditable,
NULL);
}
/* Add the heading row */
XmLGridAddRows(grid, XmHEADING, -1, 1);
/* Set the column headings */
for (i = 0; i < dbTableNumColumns; i++)
{
/* Set the column heading label */
str = XmStringCreateSimple(dbTableColumns[i].label);
XtVaSetValues(grid,
XmNrowType, XmHEADING,
XmNrow, 0,
XmNcolumn, i,
XmNcellString, str,
NULL);
XmStringFree(str);
}
/* Set cell defaults for content rows */
XtVaSetValues(grid,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
XmNcellLeftBorderType, XmBORDER_NONE,
XmNcellRightBorderType, XmBORDER_NONE,
XmNcellTopBorderType, XmBORDER_NONE,
XmNcellBottomBorderType, XmBORDER_NONE,
XmNcellMarginLeft, 1,
XmNcellMarginRight, 1,
NULL);
XmLGridAddRows(grid, XmCONTENT, -1, dbTableNumRows);
XtVaSetValues(grid,
XmNlayoutFrozen, False,
NULL);
/* Set the row keys in the rows */
setRowKeysInGridSorted(grid, Desc);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,55 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <XmL/Progress.h>
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, progress;
shell = XtAppInitialize(&app, "Prog1", NULL, 0,
&argc, argv, NULL, NULL, 0);
progress = XtVaCreateManagedWidget("progress",
xmlProgressWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "white", 6,
XtVaTypedArg, XmNforeground, XmRString, "#000080", 8,
XmNwidth, 300,
XmNheight, 25,
NULL);
XtVaSetValues(progress,
XmNvalue, 50,
NULL);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,81 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <XmL/Progress.h>
Boolean compute();
Widget progress;
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell;
shell = XtAppInitialize(&app, "Prog2", NULL, 0,
&argc, argv, NULL, NULL, 0);
progress = XtVaCreateManagedWidget("progress",
xmlProgressWidgetClass, shell,
XmNshowTime, True,
XtVaTypedArg, XmNbackground, XmRString, "white", 6,
XtVaTypedArg, XmNforeground, XmRString, "#800000", 8,
XmNwidth, 300,
XmNheight, 25,
NULL);
XtAppAddWorkProc(app, compute, NULL);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}
Boolean compute(clientData)
XtPointer clientData;
{
int i;
XtVaSetValues(progress,
XmNvalue, 0,
XmNcompleteValue, 7,
NULL);
for (i = 0; i < 7; i++)
{
XtVaSetValues(progress,
XmNvalue, i,
NULL);
/* perform processing */
sleep(1);
}
XtVaSetValues(progress,
XmNvalue, i,
NULL);
return(FALSE);
}

View File

@@ -1,84 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <XmL/Progress.h>
Boolean compute();
Widget progress;
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell;
shell = XtAppInitialize(&app, "Prog3", NULL, 0,
&argc, argv, NULL, NULL, 0);
progress = XtVaCreateManagedWidget("progress",
xmlProgressWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "white", 6,
XtVaTypedArg, XmNforeground, XmRString, "#000080", 8,
XtVaTypedArg, XmNtopShadowColor, XmRString, "#D0D0D0", 8,
XtVaTypedArg, XmNbottomShadowColor, XmRString, "black", 6,
XmNmeterStyle, XmMETER_BOXES,
XmNnumBoxes, 20,
XmNwidth, 300,
XmNheight, 20,
XmNshadowThickness, 1,
NULL);
XtAppAddWorkProc(app, compute, NULL);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}
Boolean compute(clientData)
XtPointer clientData;
{
int i;
XtVaSetValues(progress,
XmNvalue, 0,
XmNcompleteValue, 7,
NULL);
for (i = 0; i < 7; i++)
{
XtVaSetValues(progress,
XmNvalue, i,
NULL);
sleep(1);
}
XtVaSetValues(progress,
XmNvalue, i,
NULL);
return(FALSE);
}

View File

@@ -1,87 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <XmL/Tree.h>
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, tree;
Pixmap pixmap, pixmask;
XmString str;
shell = XtAppInitialize(&app, "Tree1", NULL, 0,
&argc, argv, NULL, NULL, 0);
tree = XtVaCreateManagedWidget("tree",
xmlTreeWidgetClass, shell,
XmNvisibleRows, 10,
XmNwidth, 250,
NULL);
XtVaSetValues(tree,
XmNlayoutFrozen, True,
NULL);
pixmap = XmUNSPECIFIED_PIXMAP;
pixmask = XmUNSPECIFIED_PIXMAP;
str = XmStringCreateSimple("Root");
XmLTreeAddRow(tree, 0, True, True, -1, pixmap, pixmask, str);
XmStringFree(str);
str = XmStringCreateSimple("Level 1 Parent");
XmLTreeAddRow(tree, 1, True, True, -1, pixmap, pixmask, str);
XmStringFree(str);
str = XmStringCreateSimple("1st Child of Level 1 Parent");
XmLTreeAddRow(tree, 2, False, False, -1, pixmap, pixmask, str);
XmStringFree(str);
str = XmStringCreateSimple("2nd Child of Level 1 Parent");
XmLTreeAddRow(tree, 2, False, False, -1, pixmap, pixmask, str);
XmStringFree(str);
str = XmStringCreateSimple("Level 2 Parent");
XmLTreeAddRow(tree, 2, True, True, -1, pixmap, pixmask, str);
XmStringFree(str);
str = XmStringCreateSimple("Child of Level 2 Parent");
XmLTreeAddRow(tree, 3, False, False, -1, pixmap, pixmask, str);
XmStringFree(str);
str = XmStringCreateSimple("Level 1 Parent");
XmLTreeAddRow(tree, 1, True, True, -1, pixmap, pixmask, str);
XmStringFree(str);
str = XmStringCreateSimple("Child of Level 1 Parent");
XmLTreeAddRow(tree, 2, False, False, -1, pixmap, pixmask, str);
XmStringFree(str);
XtVaSetValues(tree,
XmNlayoutFrozen, False,
NULL);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,99 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <XmL/Tree.h>
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, tree;
int i, n, size;
XmString str;
XmLTreeRowDefinition *rows;
static struct
{
Boolean expands;
int level;
char *string;
} data[] =
{
{ True, 0, "Root" },
{ True, 1, "Level 1 Parent" },
{ False, 2, "1st Child of Level 1 Parent" },
{ False, 2, "2nd Child of Level 1 Parent" },
{ True, 2, "Level 2 Parent" },
{ False, 3, "Child of Level 2 Parent" },
{ True, 1, "Level 1 Parent" },
{ False, 2, "Child of Level 1 Parent" },
};
shell = XtAppInitialize(&app, "Tree2", NULL, 0,
&argc, argv, NULL, NULL, 0);
tree = XtVaCreateManagedWidget("tree",
xmlTreeWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 6,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XtVaTypedArg, XmNblankBackground, XmRString, "white", 6,
XtVaTypedArg, XmNselectBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNselectForeground, XmRString, "white", 6,
XtVaTypedArg, XmNconnectingLineColor, XmRString, "#808080", 8,
XmNvisibleRows, 10,
XmNwidth, 250,
NULL);
XtVaSetValues(tree,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
NULL);
/* Create a TreeRowDefinition array from the data array */
/* and add rows to the Tree */
n = 8;
size = sizeof(XmLTreeRowDefinition) * n;
rows = (XmLTreeRowDefinition *)malloc(size);
for (i = 0; i < n; i++)
{
rows[i].level = data[i].level;
rows[i].expands = data[i].expands;
rows[i].isExpanded = True;
rows[i].pixmap = XmUNSPECIFIED_PIXMAP;
rows[i].pixmask = XmUNSPECIFIED_PIXMAP;
rows[i].string = XmStringCreateSimple(data[i].string);
}
XmLTreeAddRows(tree, rows, n, -1);
/* Free the TreeRowDefintion array (and XmStrings) we created above */
for (i = 0; i < n; i++)
XmStringFree(rows[i].string);
free((char *)rows);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,155 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <XmL/Tree.h>
#define sphere_width 16
#define sphere_height 16
static unsigned char sphere_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0xf0, 0x1f, 0x38, 0x3f,
0xb8, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf0, 0x1f, 0xe0, 0x0f,
0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
#define monitor_width 16
#define monitor_height 16
static unsigned char monitor_bits[] = {
0x00, 0x00, 0xf8, 0x3f, 0xf8, 0x3f, 0x18, 0x30, 0x58, 0x37, 0x18, 0x30,
0x58, 0x37, 0x18, 0x30, 0xf8, 0x3f, 0xf8, 0x3f, 0x80, 0x03, 0x80, 0x03,
0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00};
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, tree;
XmLTreeRowDefinition *rows;
Pixmap monitorPixmap, spherePixmap;
Pixel black, white;
int i, n, size;
static struct
{
Boolean expands;
int level;
char *string;
} data[] =
{
{ True, 0, "Root" },
{ True, 1, "Parent A" },
{ False, 2, "Node A1" },
{ False, 2, "Node A2" },
{ True, 2, "Parent B" },
{ False, 3, "Node B1" },
{ False, 3, "Node B2" },
{ True, 1, "Parent C" },
{ False, 2, "Node C1" },
{ True, 1, "Parent D" },
{ False, 2, "Node D1" },
};
shell = XtAppInitialize(&app, "Tree3", NULL, 0,
&argc, argv, NULL, NULL, 0);
black = BlackPixelOfScreen(XtScreen(shell));
white = WhitePixelOfScreen(XtScreen(shell));
spherePixmap = XCreatePixmapFromBitmapData(XtDisplay(shell),
DefaultRootWindow(XtDisplay(shell)),
sphere_bits, sphere_width, sphere_height,
black, white,
DefaultDepthOfScreen(XtScreen(shell)));
monitorPixmap = XCreatePixmapFromBitmapData(XtDisplay(shell),
DefaultRootWindow(XtDisplay(shell)),
monitor_bits, monitor_width, monitor_height,
black, white,
DefaultDepthOfScreen(XtScreen(shell)));
/* Create a Tree with 3 columns and 1 heading row in multiple */
/* select mode. We also set globalPixmapWidth and height here */
/* which specifys that every Pixmap we set on the Tree will be */
/* the size specified (16x16). This will increase performance. */
tree = XtVaCreateManagedWidget("tree",
xmlTreeWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XtVaTypedArg, XmNblankBackground, XmRString, "white", 6,
XtVaTypedArg, XmNselectBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNselectForeground, XmRString, "white", 6,
XtVaTypedArg, XmNconnectingLineColor, XmRString, "#808080", 8,
XmNallowColumnResize, True,
XmNheadingRows, 1,
XmNvisibleRows, 14,
XmNcolumns, 3,
XmNvisibleColumns, 5,
XmNsimpleWidths, "12c 8c 10c",
XmNsimpleHeadings, "All Folders|SIZE|DATA2",
XmNselectionPolicy, XmSELECT_MULTIPLE_ROW,
XmNhighlightRowMode, True,
XmNglobalPixmapWidth, 16,
XmNglobalPixmapHeight, 16,
NULL);
/* Set default values for new cells (the cells in the content rows) */
XtVaSetValues(tree,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
XmNcellLeftBorderType, XmBORDER_NONE,
XmNcellRightBorderType, XmBORDER_NONE,
XmNcellTopBorderType, XmBORDER_NONE,
XmNcellBottomBorderType, XmBORDER_NONE,
NULL);
/* Create a TreeRowDefinition array from the data array */
/* and add rows to the Tree */
n = 11;
size = sizeof(XmLTreeRowDefinition) * n;
rows = (XmLTreeRowDefinition *)malloc(size);
for (i = 0; i < n; i++)
{
rows[i].level = data[i].level;
rows[i].expands = data[i].expands;
rows[i].isExpanded = True;
if (data[i].expands)
rows[i].pixmap = spherePixmap;
else
rows[i].pixmap = monitorPixmap;
rows[i].pixmask = XmUNSPECIFIED_PIXMAP;
rows[i].string = XmStringCreateSimple(data[i].string);
}
XmLTreeAddRows(tree, rows, n, -1);
/* Free the TreeRowDefintion array we created above and set strings */
/* in column 1 and 2 */
for (i = 0; i < n; i++)
{
XmStringFree(rows[i].string);
XmLGridSetStringsPos(tree, XmCONTENT, i, XmCONTENT, 1, "1032|1123");
}
free((char *)rows);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,295 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <XmL/Grid.h>
#include <XmL/Tree.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
void rowExpand();
void rowCollapse();
void rowDelete();
void cellSelect();
Widget grid;
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, form, tree;
XmString str;
shell = XtAppInitialize(&app, "Tree4", NULL, 0,
&argc, argv, NULL, NULL, 0);
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNshadowThickness, 0,
NULL);
/* Add Tree to left of Form */
tree = XtVaCreateManagedWidget("tree",
xmlTreeWidgetClass, form,
XmNhorizontalSizePolicy, XmCONSTANT,
XmNautoSelect, False,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XtVaTypedArg, XmNblankBackground, XmRString, "white", 6,
XtVaTypedArg, XmNselectBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNselectForeground, XmRString, "white", 6,
XtVaTypedArg, XmNconnectingLineColor, XmRString, "#808080", 8,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_POSITION,
XmNrightPosition, 45,
NULL);
XtVaSetValues(tree,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
NULL);
/* Add a single row containing the root path to the Tree */
str = XmStringCreateSimple("/");
XmLTreeAddRow(tree, 1, True, False, 0,
XmUNSPECIFIED_PIXMAP, XmUNSPECIFIED_PIXMAP, str);
XmStringFree(str);
XtVaSetValues(tree,
XmNrow, 0,
XmNrowUserData, strdup("/"),
NULL);
XtAddCallback(tree, XmNexpandCallback, rowExpand, NULL);
XtAddCallback(tree, XmNcollapseCallback, rowCollapse, NULL);
XtAddCallback(tree, XmNdeleteCallback, rowDelete, NULL);
XtAddCallback(tree, XmNselectCallback, cellSelect, NULL);
/* Add a Grid to the right of the Form and set cell defaults */
grid = XtVaCreateManagedWidget("grid",
xmlGridWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XtVaTypedArg, XmNblankBackground, XmRString, "white", 6,
XtVaTypedArg, XmNselectBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNselectForeground, XmRString, "white", 6,
XmNcolumns, 3,
XmNsimpleWidths, "24c 12c 10c",
XmNsimpleHeadings, "Name|Type|Size",
XmNvisibleColumns, 6,
XmNallowColumnResize, True,
XmNheadingRows, 1,
XmNvisibleRows, 16,
XmNhighlightRowMode, True,
XmNleftAttachment, XmATTACH_POSITION,
XmNleftPosition, 46,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
XtVaSetValues(grid,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
XmNcellTopBorderType, XmBORDER_NONE,
XmNcellBottomBorderType, XmBORDER_NONE,
XmNcellRightBorderType, XmBORDER_NONE,
XmNcellLeftBorderType, XmBORDER_NONE,
XmNcellAlignment, XmALIGNMENT_LEFT,
NULL);
XtVaSetValues(grid,
XmNcellDefaults, True,
XmNcolumn, 2,
XmNcellAlignment, XmALIGNMENT_RIGHT,
NULL);
/* Invoke the select callback for the first row in the Tree */
/* to fill the Grid with the data for the root path */
XmLGridSelectRow(tree, 0, True);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}
void rowExpand(w, clientData, callData)
Widget w;
XtPointer clientData, callData;
{
XmLGridCallbackStruct *cbs;
XmLGridRow row;
int level, pos;
DIR *dir;
struct dirent *d;
struct stat s;
char *path, fullpath[1024];
XmString str;
/* Retrieve the path of the directory expanded. This is kept */
/* in the row's rowUserData */
cbs = (XmLGridCallbackStruct *)callData;
row = XmLGridGetRow(w, XmCONTENT, cbs->row);
XtVaGetValues(w,
XmNrowPtr, row,
XmNrowUserData, &path,
XmNrowLevel, &level,
NULL);
pos = cbs->row + 1;
dir = opendir(path);
if (!dir)
return;
/* Add the subdirectories of the directory expanded to the Tree */
XtVaSetValues(w,
XmNlayoutFrozen, True,
NULL);
while (d = readdir(dir))
{
if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, ".."))
continue;
sprintf(fullpath, "%s/%s", path, d->d_name);
if (lstat(fullpath, &s) == -1)
continue;
if (!S_ISDIR(s.st_mode))
continue;
str = XmStringCreateSimple(d->d_name);
XmLTreeAddRow(w, level + 1, True, False, pos,
XmUNSPECIFIED_PIXMAP, XmUNSPECIFIED_PIXMAP, str);
XmStringFree(str);
XtVaSetValues(w,
XmNrow, pos,
XmNrowUserData, strdup(fullpath),
NULL);
pos++;
}
closedir(dir);
XtVaSetValues(w,
XmNlayoutFrozen, False,
NULL);
}
void rowCollapse(w, clientData, callData)
Widget w;
XtPointer clientData, callData;
{
XmLGridCallbackStruct *cbs;
XmLGridRow row;
char *path;
int i, j, level, rows;
/* Collapse the row by deleting the rows in the tree which */
/* are children of the collapsed row. */
cbs = (XmLGridCallbackStruct *)callData;
XmLTreeDeleteChildren(w, cbs->row);
}
void rowDelete(w, clientData, callData)
Widget w;
XtPointer clientData, callData;
{
/* Free the path contained in the rowUserData of the rows deleted */
XmLGridCallbackStruct *cbs;
XmLGridRow row;
char *path;
cbs = (XmLGridCallbackStruct *)callData;
if (cbs->rowType != XmCONTENT || cbs->reason != XmCR_DELETE_ROW)
return;
row = XmLGridGetRow(w, XmCONTENT, cbs->row);
XtVaGetValues(w,
XmNrowPtr, row,
XmNrowUserData, &path,
NULL);
if (path)
free(path);
}
void cellSelect(w, clientData, callData)
Widget w;
XtPointer clientData, callData;
{
XmLGridCallbackStruct *cbs;
XmLGridRow row;
DIR *dir;
struct stat s;
struct dirent *d;
char *path, fullpath[1024], buf[256];
int pos;
/* Retrieve the directory selected */
cbs = (XmLGridCallbackStruct *)callData;
if (cbs->rowType != XmCONTENT)
return;
row = XmLGridGetRow(w, XmCONTENT, cbs->row);
XtVaGetValues(w,
XmNrowPtr, row,
XmNrowUserData, &path,
NULL);
dir = opendir(path);
if (!dir)
return;
/* Add a row for each file in the directory to the Grid */
pos = 0;
XtVaSetValues(grid,
XmNlayoutFrozen, True,
NULL);
XmLGridDeleteAllRows(grid, XmCONTENT);
while (d = readdir(dir))
{
sprintf(fullpath, "%s/%s", path, d->d_name);
if (lstat(fullpath, &s) == -1)
continue;
XmLGridAddRows(grid, XmCONTENT, pos, 1);
XmLGridSetStringsPos(grid, XmCONTENT, pos, XmCONTENT, 0, d->d_name);
if (S_ISDIR(s.st_mode))
sprintf(buf, "Directory");
else if (S_ISLNK(s.st_mode))
sprintf(buf, "Link");
else
sprintf(buf, "File");
XmLGridSetStringsPos(grid, XmCONTENT, pos, XmCONTENT, 1, buf);
sprintf(buf, "%d", (int)s.st_size);
XmLGridSetStringsPos(grid, XmCONTENT, pos, XmCONTENT, 2, buf);
pos++;
}
closedir(dir);
XtVaSetValues(grid,
XmNlayoutFrozen, False,
NULL);
}

View File

@@ -1,218 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/PushB.h>
#include <XmL/Tree.h>
#define sphere_width 16
#define sphere_height 16
static unsigned char sphere_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0xf0, 0x1f, 0x38, 0x3f,
0xb8, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf0, 0x1f, 0xe0, 0x0f,
0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
#define monitor_width 16
#define monitor_height 16
static unsigned char monitor_bits[] = {
0x00, 0x00, 0xf8, 0x3f, 0xf8, 0x3f, 0x18, 0x30, 0x58, 0x37, 0x18, 0x30,
0x58, 0x37, 0x18, 0x30, 0xf8, 0x3f, 0xf8, 0x3f, 0x80, 0x03, 0x80, 0x03,
0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00};
#if 0
void
hide_cb(Widget w, XtPointer clientData, XtPointer cb_data)
{
Widget tree = (Widget) clientData;
XmLGridHideRightColumn(tree);
}
void
show_cb(Widget w, XtPointer clientData, XtPointer cb_data)
{
Widget tree = (Widget) clientData;
XmLGridUnhideRightColumn(tree);
}
#endif /*0*/
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, tree, form, hideB, showB;
XmLTreeRowDefinition *rows;
Pixmap monitorPixmap, spherePixmap;
Pixel black, white;
int i, n, size;
static struct
{
Boolean expands;
int level;
char *string;
} data[] =
{
{ True, 0, "Root" },
{ True, 1, "Parent A" },
{ False, 2, "Node A1" },
{ False, 2, "Node A2" },
{ True, 2, "Parent B" },
{ False, 3, "Node B1" },
{ False, 3, "Node B2" },
{ True, 1, "Parent C" },
{ False, 2, "Node C1" },
{ True, 1, "Parent D" },
{ False, 2, "Node D1" },
};
shell = XtAppInitialize(&app, "Tree3", NULL, 0,
&argc, argv, NULL, NULL, 0);
black = BlackPixelOfScreen(XtScreen(shell));
white = WhitePixelOfScreen(XtScreen(shell));
spherePixmap = XCreatePixmapFromBitmapData(XtDisplay(shell),
DefaultRootWindow(XtDisplay(shell)),
sphere_bits, sphere_width, sphere_height,
black, white,
DefaultDepthOfScreen(XtScreen(shell)));
monitorPixmap = XCreatePixmapFromBitmapData(XtDisplay(shell),
DefaultRootWindow(XtDisplay(shell)),
monitor_bits, monitor_width, monitor_height,
black, white,
DefaultDepthOfScreen(XtScreen(shell)));
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XmNshadowThickness, 0,
NULL);
#if 0
hideB = XtVaCreateManagedWidget("hide",
xmPushButtonWidgetClass, form,
XmNleftAttachment, XmATTACH_NONE,
XmNtopAttachment, XmATTACH_POSITION,
XmNtopPosition, 30,
XmNbottomAttachment, XmATTACH_NONE,
XmNrightAttachment, XmATTACH_FORM,
NULL);
showB = XtVaCreateManagedWidget("show",
xmPushButtonWidgetClass, form,
XmNleftAttachment, XmATTACH_NONE,
XmNtopAttachment, XmATTACH_POSITION,
XmNtopPosition, 30,
XmNbottomAttachment, XmATTACH_NONE,
XmNrightAttachment, XmATTACH_WIDGET,
XmNrightWidget, hideB,
NULL);
#endif /*0*/
/* Create a Tree with 3 columns and 1 heading row in multiple */
/* select mode. We also set globalPixmapWidth and height here */
/* which specifys that every Pixmap we set on the Tree will be */
/* the size specified (16x16). This will increase performance. */
tree = XtVaCreateManagedWidget("tree",
xmlTreeWidgetClass, form,
XtVaTypedArg, XmNbackground, XmRString, "#C0C0C0", 8,
XtVaTypedArg, XmNforeground, XmRString, "black", 6,
XtVaTypedArg, XmNblankBackground, XmRString, "white", 6,
XtVaTypedArg, XmNselectBackground, XmRString, "#000080", 8,
XtVaTypedArg, XmNselectForeground, XmRString, "white", 6,
XtVaTypedArg, XmNconnectingLineColor, XmRString, "#808080", 8,
XmNhorizontalSizePolicy, XmRESIZE_IF_POSSIBLE,
XmNallowColumnResize, True,
XmNheadingRows, 1,
XmNvisibleRows, 14,
XmNcolumns, 3,
XmNvisibleColumns, 1,
XmNhideUnhideButtons, True,
XmNsimpleWidths, "80c 40c 40c",
XmNsimpleHeadings, "All Folders|SIZE|DATA2",
XmNselectionPolicy, XmSELECT_MULTIPLE_ROW,
XmNhighlightRowMode, True,
XmNglobalPixmapWidth, 16,
XmNglobalPixmapHeight, 16,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
#if 0
XmNrightAttachment, XmATTACH_WIDGET,
XmNrightWidget, showB,
#endif /*0*/
XmNdebugLevel, 2,
NULL);
/* Set default values for new cells (the cells in the content rows) */
XtVaSetValues(tree,
XmNcellDefaults, True,
XtVaTypedArg, XmNcellBackground, XmRString, "white", 6,
XmNcellEditable, True,
XmNcellLeftBorderType, XmBORDER_NONE,
XmNcellRightBorderType, XmBORDER_NONE,
XmNcellTopBorderType, XmBORDER_NONE,
XmNcellBottomBorderType, XmBORDER_NONE,
NULL);
#if 0
XtAddCallback(hideB, XmNactivateCallback, hide_cb, (XtPointer)tree);
XtAddCallback(showB, XmNactivateCallback, show_cb, (XtPointer)tree);
#endif /*0*/
/* Create a TreeRowDefinition array from the data array */
/* and add rows to the Tree */
n = 11;
size = sizeof(XmLTreeRowDefinition) * n;
rows = (XmLTreeRowDefinition *)malloc(size);
for (i = 0; i < n; i++)
{
rows[i].level = data[i].level;
rows[i].expands = data[i].expands;
rows[i].isExpanded = True;
if (data[i].expands)
rows[i].pixmap = spherePixmap;
else
rows[i].pixmap = monitorPixmap;
rows[i].pixmask = XmUNSPECIFIED_PIXMAP;
rows[i].string = XmStringCreateSimple(data[i].string);
}
XmLTreeAddRows(tree, rows, n, -1);
/* Free the TreeRowDefintion array we created above and set strings */
/* in column 1 and 2 */
for (i = 0; i < n; i++)
{
XmStringFree(rows[i].string);
XmLGridSetStringsPos(tree, XmCONTENT, i, XmCONTENT, 1, "1032|1123");
}
free((char *)rows);
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,98 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Mrm/MrmPublic.h>
#include <XmL/Folder.h>
#include <XmL/Grid.h>
#include <XmL/Progress.h>
#include <XmL/Tree.h>
#include <stdio.h>
main(argc, argv)
int argc;
String argv[];
{
Display *dpy;
XtAppContext app;
Widget toplevel, tree, shellForm;
Pixmap pixmap;
XmString str;
MrmHierarchy hier;
MrmCode clas;
static char *files[] = {
"uil1.uid" };
MrmInitialize ();
XtToolkitInitialize();
app = XtCreateApplicationContext();
dpy = XtOpenDisplay(app, NULL, argv[0], "Uil1",
NULL, 0, &argc, argv);
if (dpy == NULL) {
fprintf(stderr, "%s: Can't open display\n", argv[0]);
exit(1);
}
toplevel = XtVaAppCreateShell(argv[0], NULL,
applicationShellWidgetClass, dpy,
XmNwidth, 400,
XmNheight, 300,
NULL);
if (MrmOpenHierarchy (1, files, NULL, &hier) != MrmSUCCESS)
printf ("can't open hierarchy\n");
MrmRegisterClass(0, NULL, "XmLCreateFolder",
XmLCreateFolder, xmlFolderWidgetClass);
MrmRegisterClass(0, NULL, "XmLCreateGrid",
XmLCreateGrid, xmlGridWidgetClass);
MrmRegisterClass(0, NULL, "XmLCreateProgress",
XmLCreateProgress, xmlProgressWidgetClass);
MrmRegisterClass(0, NULL, "XmLCreateTree",
XmLCreateTree, xmlTreeWidgetClass);
if (MrmFetchWidget(hier, "shellForm", toplevel, &shellForm,
&clas) != MrmSUCCESS)
printf("can't fetch shellForm\n");
tree = XtNameToWidget(shellForm, "*tree");
/* Add two rows to the Tree */
pixmap = XmUNSPECIFIED_PIXMAP;
str = XmStringCreateSimple("Root");
XmLTreeAddRow(tree, 0, True, True, -1, pixmap, pixmap, str);
XmStringFree(str);
str = XmStringCreateSimple("Child of Root");
XmLTreeAddRow(tree, 1, False, False, -1, pixmap, pixmap, str);
XmStringFree(str);
XtManageChild(shellForm);
XtRealizeWidget(toplevel);
XtAppMainLoop(app);
return (0);
}

View File

@@ -1,172 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
module uil1
version = 'v1.0'
names = case_sensitive
include file 'XmL/XmL.uih';
value
grey : color('#C0C0C0', background);
lightGrey : color('#E0E0E0', background);
black : color('#000000', foreground);
white : color('#FFFFFF', background);
darkBlue : color('#000080', foreground);
object shellForm :
XmForm {
arguments {
XmNbackground = grey;
XmNmarginWidth = 10;
XmNmarginHeight = 10;
XmNshadowThickness = 0;
};
controls {
user_defined folder;
};
};
object folder :
user_defined procedure XmLCreateFolder {
arguments {
XmNbackground = grey;
XmNforeground = black;
XmNtabsPerRow = 2;
XmNtopAttachment = XmATTACH_FORM;
XmNbottomAttachment = XmATTACH_FORM;
XmNleftAttachment = XmATTACH_FORM;
XmNrightAttachment = XmATTACH_FORM;
};
controls {
XmDrawnButton tabOne;
XmDrawnButton tabTwo;
XmDrawnButton tabThree;
XmDrawnButton tabFour;
XmForm folderForm;
};
};
object tabOne:
XmDrawnButton {
arguments {
XmNlabelString = compound_string('Configuration');
};
};
object tabTwo:
XmDrawnButton {
arguments {
XmNlabelString = compound_string('Settings');
};
};
object tabThree:
XmDrawnButton {
arguments {
XmNlabelString = compound_string('Resources');
};
};
object tabFour:
XmDrawnButton {
arguments {
XmNlabelString = compound_string('Hardware Types');
};
};
object folderForm :
XmForm {
arguments {
XmNbackground = grey;
XmNhorizontalSpacing = 10;
XmNverticalSpacing = 10;
};
controls {
user_defined tree;
user_defined grid;
user_defined progress;
};
};
object tree :
user_defined procedure XmLCreateTree {
arguments {
XmNbackground = grey;
XmNforeground = black;
XmNleftAttachment = XmATTACH_FORM;
XmNrightAttachment = XmATTACH_FORM;
XmNtopAttachment = XmATTACH_FORM;
XmNbottomAttachment = XmATTACH_POSITION;
XmNbottomPosition = 25;
};
};
object grid :
user_defined procedure XmLCreateGrid {
arguments {
XmNbackground = grey;
XmNforeground = black;
XmNselectBackground = darkBlue;
XmNselectForeground = white;
XmNleftAttachment = XmATTACH_FORM;
XmNrightAttachment = XmATTACH_FORM;
XmNtopAttachment = XmATTACH_POSITION;
XmNtopPosition = 30;
XmNbottomAttachment = XmATTACH_POSITION;
XmNbottomPosition = 80;
XmNcolumns = 5;
XmNheadingRows = 1;
XmNsimpleHeadings = "Name|Width|Height|X|Y";
XmNsimpleWidths = "20c 10c 10c 8c 8c";
XmNrows = 20;
XmNleftFixedCount = 1;
};
};
object progress :
user_defined procedure XmLCreateProgress {
arguments {
XmNtopShadowColor = lightGrey;
XmNbottomShadowColor = black;
XmNbackground = white;
XmNforeground = darkBlue;
XmNleftAttachment = XmATTACH_FORM;
XmNrightAttachment = XmATTACH_FORM;
XmNtopAttachment = XmATTACH_POSITION;
XmNtopPosition = 85;
XmNheight = 20;
XmNshadowThickness = 1;
XmNmeterStyle = MeterBoxes;
XmNnumBoxes = 20;
XmNvalue = 70;
XmNcompleteValue = 200;
};
};
end module;

View File

@@ -1,87 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
* The following source code is part of the Microline Widget Library.
* The Microline widget library is made available to Mozilla developers
* under the Netscape Public License (NPL) by Neuron Data. To learn
* more about Neuron Data, please visit the Neuron Data Home Page at
* http://www.neurondata.com.
*/
#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/DrawnB.h>
#include <XmL/XmL.h>
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget shell, form, button[4][5];
int i, j;
static int types[5] =
{
XmDRAWNB_ARROW,
XmDRAWNB_ARROWLINE,
XmDRAWNB_DOUBLEARROW,
XmDRAWNB_SQUARE,
XmDRAWNB_DOUBLEBAR
};
static int dirs[4] =
{
XmDRAWNB_RIGHT,
XmDRAWNB_LEFT,
XmDRAWNB_UP,
XmDRAWNB_DOWN
};
shell = XtAppInitialize(&app, "Grid1", NULL, 0,
&argc, argv, NULL, NULL, 0);
form = XtVaCreateManagedWidget("form",
xmFormWidgetClass, shell,
XmNfractionBase, 5,
XmNshadowThickness, 0,
NULL);
for (i = 0 ; i < 4; i++)
for (j = 0; j < 5; j++)
{
button[i][j] = XtVaCreateManagedWidget("drawnB",
xmDrawnButtonWidgetClass, form,
XmNtopAttachment, XmATTACH_POSITION,
XmNtopPosition, i,
XmNbottomAttachment, XmATTACH_POSITION,
XmNbottomPosition, i + 1,
XmNleftAttachment, XmATTACH_POSITION,
XmNleftPosition, j,
XmNrightAttachment, XmATTACH_POSITION,
XmNrightPosition, j + 1,
XmNwidth, 30,
XmNheight, 30,
NULL);
XmLDrawnButtonSetType(button[i][j], types[j], dirs[i]);
}
XtRealizeWidget(shell);
XtAppMainLoop(app);
}

View File

@@ -1,52 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArrayAdd 3X "R1" "XML1" "XML"
.SH NAME
XmLArrayAdd \- add space to an array
.SH SYNTAX
void XmLArrayAdd(\fIarray\fP, \fIpos\fP, \fIcount\fP)
.br
XmLArray \fIarray\fP;
.br
int \fIpos\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
array to add to
.IP \fIpos\fP 1i
position to add at
.IP \fIcount\fP 1i
size of space to add
.SH DESCRIPTION
Adds (\fIcount\fP * sizeof(void *)) bytes of space at position
\fIpos\fP to the \fIarray\fP given. Use XmLArraySet() to set
the values in the array after adding space.
.SH "SEE ALSO"
XmLArrayDel(3X) XmLArrayFree(3X) XmLArrayGet(3X)
XmLArrayGetCount(3X) XmLArrayMove(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,54 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArrayDel 3X "R1" "XML1" "XML"
.SH NAME
XmLArrayDel \- remove space from an array
.SH SYNTAX
int XmLArrayDel(\fIarray\fP, \fIpos\fP, \fIcount\fP)
.br
XmLArray \fIarray\fP;
.br
int \fIpos\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
array to remove from
.IP \fIpos\fP 1i
position to start removal
.IP \fIcount\fP 1i
size of space to remove
.SH DESCRIPTION
Removes (\fIcount\fP * sizeof(void *)) bytes of space at position
\fIpos\fP from the \fIarray\fP given. This call only removes
space from the array, it does not free individual elements.
.SH RETURN VALUE
0 upon success and -1 upon failure (a value passed is out of range).
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayFree(3X) XmLArrayGet(3X)
XmLArrayGetCount(3X) XmLArrayMove(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,43 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArrayFree 3X "R1" "XML1" "XML"
.SH NAME
XmLArrayFree \- free an array
.SH SYNTAX
void XmLArrayFree(\fIarray\fP)
.br
XmLArray \fIarray\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
array to free
.SH DESCRIPTION
Frees the \fIarray\fP given and any space allocated by the array.
This function does not free the individual elements of the array.
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayDel(3X) XmLArrayGet(3X)
XmLArrayGetCount(3X) XmLArrayMove(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,48 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArrayGet 3X "R1" "XML1" "XML"
.SH NAME
XmLArrayGet \- retrieve a pointer from an array
.SH SYNTAX
void *XmLArrayGet(\fIarray\fP, \fIpos\fP)
.br
XmLArray \fIarray\fP;
.br
int \fIpos\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
array to retrieve from
.IP \fIpos\fP 1i
position of the pointer to retrieve
.SH DESCRIPTION
Returns the pointer at the position \fIpos\fP in the \fIarray\fP given.
.SH RETURN VALUE
The pointer at the given position or NULL if the position is invalid.
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayDel(3X) XmLArrayFree(3X)
XmLArrayGetCount(3X) XmLArrayMove(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,44 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArrayGetCount 3X "R1" "XML1" "XML"
.SH NAME
XmLArrayGetCount \- return size of an array
.SH SYNTAX
int XmLArrayGetCount(\fIarray\fP)
.br
XmLArray \fIarray\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
array to query
.SH DESCRIPTION
Returns the size of \fIarray\fP in units of number of pointers it can hold.
.SH RETURN VALUE
The size of the array.
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayDel(3X) XmLArrayFree(3X) XmLArrayGet(3X)
XmLArrayMove(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,60 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArrayMove 3X "R1" "XML1" "XML"
.SH NAME
XmLArrayMove \- move items in an array
.SH SYNTAX
int XmLArrayMove(\fIarray\fP, \fInewPos\fP, \fIpos\fP, \fIcount\fP)
.br
XmLArray \fIarray\fP;
.br
int \fInewPos\fP;
.br
int \fIpos\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
array to operate on
.IP \fInewPos\fP 1i
position to move to
.IP \fIpos\fP 1i
position to move from
.IP \fIcount\fP 1i
number of items to move
.SH DESCRIPTION
Moves \fIcount\fP pointers starting at position \fIpos\fP in the
\fIarray\fP to the new position \fInewPos\fP. The existing pointers
at the new location are moved down to accommodate the move. No pointers
are overwritten by this call and the size of the array will remain
unchanged.
.SH RETURN VALUE
0 upon success and -1 upon failure (a value passed is out of range).
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayDel(3X) XmLArrayFree(3X) XmLArrayGet(3X)
XmLArrayGetCount(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,60 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArrayNew 3X "R1" "XML1" "XML"
.SH NAME
XmLArrayNew \- creates an array object
.SH SYNTAX
XmLArray XmLArrayNew(\fIautonumber\fP, \fIgrowFast\fP)
.br
char \fIautonumber\fP;
.br
char \fIgrowFast\fP;
.LP
.SH ARGUMENTS
.IP \fIautonumber\fP 1i
If set to 1, the pointers in the array are assumed to be
pointers to structures containing an integer as the first
element which will be set to the position of the item
in the array. The array will set this value with the
current position of the element whenever position
of the item changes. If set to 0, the array will never
dereference the pointers contained in the array.
.IP \fIgrowFast\fP 1i
If set to 1, the array will grow quickly as items are added
to it. This will cause the amount of memory the array takes
up to usually be greater than the current space for elements.
If set to 0, the array will always be the size of the current
space for the elements contained in the array.
.SH DESCRIPTION
Creates an array object and returns it. An array object is used to
hold an array of pointers. This object should be freed with XmLArrayFree()
when it is no longer used.
.SH RETURN VALUE
The newly allocate array object.
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayDel(3X) XmLArrayFree(3X) XmLArrayGet(3X)
XmLArrayGetCount(3X) XmLArrayMove(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,60 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArrayReorder 3X "R1" "XML1" "XML"
.SH NAME
XmLArrayReorder \- reorder items in an array
.SH SYNTAX
int XmLArrayReorder(\fIarray\fP, \fInewPositions\fP, \fIpos\fP, \fIcount\fP)
.br
XmLArray \fIarray\fP;
.br
int \fInewPositions\fP;
.br
int \fIpos\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
array to operate on
.IP \fInewPositions\fP 1i
new positions of items
.IP \fIpos\fP 1i
start position of items to reorder
.IP \fIcount\fP 1i
number of items to reorder
.SH DESCRIPTION
Reorders the \fIarray\fP by ordering \fIcount\fP pointers at position
\fIpos\fP to the positions specified in the \fInewPositions\fP array.
The newPositions array should contain numbers starting at pos and
ending at pos + count - 1. This function does not free the newPositions
array passed in.
.SH RETURN VALUE
0 upon success and -1 upon failure (a value passed is out of range).
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayDel(3X) XmLArrayFree(3X) XmLArrayGet(3X)
XmLArrayGetCount(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,54 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArraySet 3X "R1" "XML1" "XML"
.SH NAME
XmLArraySet \- set a pointer element in an array
.SH SYNTAX
int XmLArraySet(\fIarray\fP, \fIpos\fP, \fIitem\fP)
.br
XmLArray \fIarray\fP;
.br
int \fIpos\fP;
.br
void *\fIitem\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
array to set in
.IP \fIpos\fP 1i
position of the pointer to set
.IP \fIitem\fP 1i
value of the item to set
.SH DESCRIPTION
Sets the pointer at the position \fIpos\fP in the \fIarray\fP given to
\fIitem\fP.
.SH RETURN VALUE
0 upon success and -1 upon failure (a value passed is out of range).
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayDel(3X) XmLArrayFree(3X)
XmLArrayGetCount(3X) XmLArrayMove(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X) XmLArraySort(3X)

View File

@@ -1,64 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLArraySort 3X "R1" "XML1" "XML"
.SH NAME
XmLArraySort \- sort an array
.SH SYNTAX
int XmLArraySort(\fIarray\fP, \fIcompare\fP, \fIuserData\fP, \
\fIpos\fP, \fIcount\fP)
.br
XmLArray \fIarray\fP;
.br
XmLArrayCompareFunc \fIcompare\fP;
.br
void *\fIuserData\fP;
.br
int \fIpos\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIarray\fP 1i
the array to sort
.IP \fIcompare\fP 1i
the comparison function for pointers in the array
.IP \fIuserData\fP 1i
an application defined pointer to pass to the sort function
.IP \fIpos\fP 1i
start position in array to sort
.IP \fIcount\fP 1i
number of items in array to sort
.SH DESCRIPTION
Sorts \fIcount\fP number of elements starting at position
\fIpos\fP in \fIarray\fP using the \fIcompare\fP function given.
The \fIuserData\fP argument is passed as data to the comparison
function.
.SH RETURN VALUE
0 upon success and -1 upon failure (a value passed is out of range).
.SH "SEE ALSO"
XmLArrayAdd(3X) XmLArrayDel(3X) XmLArrayFree(3X) XmLArrayGet(3X)
XmLArrayGetCount(3X) XmLArrayMove(3X) XmLArrayNew(3X)
XmLArrayReorder(3X) XmLArraySet(3X)

View File

@@ -1,54 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLCreateFolder 3X "R1" "XML1" "XML"
.SH NAME
XmLCreateFolder \- create an instance of a Folder widget
.SH SYNTAX
Widget XmLCreateFolder(\fIparent\fP, \fIname\fP, \fIarglist\fP, \fIargcount\fP)
.br
Widget \fIparent\fP;
.br
char *\fIname\fP;
.br
ArgList \fIarglist\fP;
.br
Cardinal \fIargcount\fP;
.LP
.SH ARGUMENTS
.IP \fIparent\fP 1i
new widgets parent widget ID
.IP \fIname\fP 1i
name of the newly created widget
.IP \fIarglist\fP 1i
resource name/value pairs
.IP \fIargcount\fP 1i
count of pairs in arglist
.SH DESCRIPTION
Creates an instance of a Folder widget and returns its widget ID.
.SH RETURN VALUE
The widget ID of the newly created Folder widget.
.SH "SEE ALSO"
XmLFolder(3X)

View File

@@ -1,54 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLCreateGrid 3X "R1" "XML1" "XML"
.SH NAME
XmLCreateGrid \- create an instance of a Grid widget
.SH SYNTAX
Widget XmLCreateGrid(\fIparent\fP, \fIname\fP, \fIarglist\fP, \fIargcount\fP)
.br
Widget \fIparent\fP;
.br
char *\fIname\fP;
.br
ArgList \fIarglist\fP;
.br
Cardinal \fIargcount\fP;
.LP
.SH ARGUMENTS
.IP \fIparent\fP 1i
new widgets parent widget ID
.IP \fIname\fP 1i
name of the newly created widget
.IP \fIarglist\fP 1i
resource name/value pairs
.IP \fIargcount\fP 1i
count of pairs in arglist
.SH DESCRIPTION
Creates an instance of a Grid widget and returns its widget ID.
.SH RETURN VALUE
The widget ID of the newly created Grid widget.
.SH "SEE ALSO"
XmLGrid(3X)

View File

@@ -1,55 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLCreateProgress 3X "R1" "XML1" "XML"
.SH NAME
XmLCreateProgress \- create an instance of a Progress widget
.SH SYNTAX
Widget XmLCreateProgress(\fIparent\fP, \fIname\fP, \fIarglist\fP,
\fIargcount\fP)
.br
Widget \fIparent\fP;
.br
char *\fIname\fP;
.br
ArgList \fIarglist\fP;
.br
Cardinal \fIargcount\fP;
.LP
.SH ARGUMENTS
.IP \fIparent\fP 1i
new widgets parent widget ID
.IP \fIname\fP 1i
name of the newly created widget
.IP \fIarglist\fP 1i
resource name/value pairs
.IP \fIargcount\fP 1i
count of pairs in arglist
.SH DESCRIPTION
Creates an instance of a Progress widget and returns its widget ID.
.SH RETURN VALUE
The widget ID of the newly created Progress widget.
.SH "SEE ALSO"
XmLProgress(3X)

View File

@@ -1,54 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLCreateTree 3X "R1" "XML1" "XML"
.SH NAME
XmLCreateTree \- create an instance of a Tree widget
.SH SYNTAX
Widget XmLCreateTree(\fIparent\fP, \fIname\fP, \fIarglist\fP, \fIargcount\fP)
.br
Widget \fIparent\fP;
.br
char *\fIname\fP;
.br
ArgList \fIarglist\fP;
.br
Cardinal \fIargcount\fP;
.LP
.SH ARGUMENTS
.IP \fIparent\fP 1i
new widgets parent widget ID
.IP \fIname\fP 1i
name of the newly created widget
.IP \fIarglist\fP 1i
resource name/value pairs
.IP \fIargcount\fP 1i
count of pairs in arglist
.SH DESCRIPTION
Creates an instance of a Tree widget and returns its widget ID.
.SH RETURN VALUE
The widget ID of the newly created Tree widget.
.SH "SEE ALSO"
XmLTree(3X)

View File

@@ -1,65 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLCvtStringToUChar 3X "R1" "XML1" "XML"
.SH NAME
XmLCvtStringToUChar \- unsigned char resource converter
.SH SYNTAX
Boolean XmLCvtStringToUChar(\fIdpy\fP, \fIresname\fP, \fImap\fP, \
\fIfromVal\fP, \fItoVal\fP)
.br
Display *\fIdpy\fP;
.br
char *\fIresname\fP;
.br
XmLStringToUCharMap *\fImap\fP;
.br
XrmValuePtr \fIfromVal\fP;
.br
XrmValuePtr \fItoVal\fP;
.LP
.SH ARGUMENTS
.IP \fIdpy\fP 1i
the display
.IP \fIresname\fP 1i
the resource name
.IP \fImap\fP 1i
the mappings of string to unsigned char
.IP \fIfromVal\fP 1i
the resource value from
.IP \fItoVal\fP 1i
the resource value to
.SH DESCRIPTION
This function can be used in a widget to perform resource conversion
from a string to an unsigned char. This function should be called inside
a widgets resource converter where parameters \fIdpy\fP,
\fIfromVal\fP and \fItoVal\fP are available to be passed in. The
\fIresname\fP parameter identifies the resource and the \fImap\fP
array is an array of mappings from strings to unsigned chars. A
NULL string should be used in the last array element to terminate
the array.
.SH RETURN VALUE
True if conversion was successful and toVal is filled in and False if
conversion was unsuccessful.

View File

@@ -1,47 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLDateDaysInMonth 3X "R1" "XML1" "XML"
.SH NAME
XmLDateDaysInMonth \- calculates number of days in month
.SH SYNTAX
int XmLDateDaysInMonth(\fIm\fP, \fIy\fP)
.br
int \fIm\fP;
.br
int \fIy\fP;
.LP
.SH ARGUMENTS
.IP \fIm\fP 1i
month 1 to 12
.IP \fIy\fP 1i
year 1753 to 9999
.SH DESCRIPTION
Calculates the number of days in a given month \fIm\fP and year \fIy\fP.
.SH RETURN VALUE
The number of days in the given month and year. A value of -1 is
returned if a passed value is out of range.
.SH "SEE ALSO"
XmLDateWeekDay(3X)

View File

@@ -1,52 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLDateWeekDay 3X "R1" "XML1" "XML"
.SH NAME
XmLDateWeekDay \- calculates the weekday for a given date
.SH SYNTAX
int XmLDateWeekDay(\fIm\fP, \fId\fP, \fIy\fP)
.br
int \fIm\fP;
.br
int \fId\fP;
.br
int \fIy\fP;
.LP
.SH ARGUMENTS
.IP \fIm\fP 1i
month 1 to 12
.IP \fId\fP 1i
day 1 to number of days in month
.IP \fIy\fP 1i
year 1753 to 9999
.SH DESCRIPTION
Calculates the weekday for the given day \fId\fP, month \fIm\fP, and year
\fIy\fP.
.SH RETURN VALUE
0 for Sunday, 1 for Monday and so on through 6 for Saturday. A value
of -1 is returned if a passed value is out of range.
.SH "SEE ALSO"
XmLDateDaysInMonth(3X)

View File

@@ -1,54 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLDrawnButtonSetType 3X "R1" "XML1" "XML"
.SH NAME
XmLDrawnButtonSetType \- adds graphics to a DrawnButton widget
.SH SYNTAX
void XmLDrawnButtonSetType(\fIwidget\fP, \fIdrawnType\fP, \fIdrawnDir\fP)
.br
Widget \fIwidget\fP;
.br
int \fIdrawnType\fP;
.br
int \fIdrawnDir\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
DrawnButton widget ID
.IP \fIdrawnType\fP 1i
type of button to display
.IP \fIdrawnDir\fP 1i
direction of button to display
.SH DESCRIPTION
Given a \fIwidget\fP of class XmDrawnButton this function attaches
expose and realize callbacks to the widget to display the specified graphic
in the button. This function also sets the widget's XmNpushButtonEnabled
resource to True. The \fIdrawnType\fP value given must be one of
the following: XmDRAWNB_ARROW, XmDRAWNB_ARROWLINE, XmDRAWNB_DOUBLEARROW,
XmDRAWNB_SQUARE ,XmDRAWNB_DOUBLEBAR or XmDRAWNB_STRING.
The \fIdrawnDir\fP value given must be
XmDRAWNB_RIGHT, XmDRAWNB_LEFT, XmDRAWNB_UP, or XmDRAWNB_DOWN.
The graphics inside the button are drawn in the widget's foreground color.

View File

@@ -1,352 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLFolder 3X "R1" "XML1" "XML"
.SH NAME
XmLFolder
.SH SYNOPSIS
#include <XmL/Folder.h>
.LP
.SH DESCRIPTION
Provides a Folder containing tabs along the top, bottom, left or
right and an area managed by the tabs in the center. Each tab
consists of a Primitive widget surrounded by tab decorations including
an optional pixmap. Any non-Primitive widget children of the Folder
are placed in the center area. The widgets contained in the tabs
can be assigned a non-Primitive widget to display/manage when the
tab widget is selected.
.SS Class Information
Folder inherits from XmManager, Constraint, Composite and Core. Its
class pointer is xmlFolderWidgetClass. Its class name is XmLFolder.
.SS New Resources
.nf
.ft B
Name Class
Type Default Access
.ft P
XmNactiveTab XmCActiveTab
int -1 G
XmNautoSelect XmCAutoSelect
Boolean True CSG
XmNblankBackground XmCBlankBackground
Pixel dynamic CSG
XmNblankBackgroundPixmap XmCBlankBackgroundPixmap
Pixmap dynamic CSG
XmNcornerDimension XmCCornerDimension
Dimension 2 CSG
XmNcornerStyle XmCCornerStyle
unsigned char XmCORNER_ARC CSG
XmNdebugLevel XmCDebugLevel
int 0 CSG
XmNfontList XmCFontList
XmFontList dynamic CSG
XmNhighlightThickness XmCHighlightThickness
Dimension 2 CSG
XmNinactiveBackground XmCInactiveBackground
Pixel dynamic CSG
XmNinactiveForeground XmCInactiveForeground
Pixel dynamic CSG
XmNmarginHeight XmCMarginHeight
Dimension 0 CSG
XmNmarginWidth XmCMarginWidth
Dimension 0 CSG
XmNpixmapMargin XmCPixmapMargin
Dimension 2 CSG
XmNresizePolicy XmCFolderResizePolicy
XmRFolderResizePolicy XmRESIZE_STATIC CSG
XmNrotateWhenLeftRight XmCRotateWhenLeftRight
Boolean True CSG
XmNspacing XmCSpacing
Dimension 0 CSG
XmNtabBarHeight XmCTabBarHeight
Dimension dynamic G
XmNtabCount XmCTabCount
int 0 G
XmNtabPlacement XmCTabPlacement
unsigned char XmFOLDER_TOP CSG
XmNtabsPerRow XmCTabsPerRow
int 0 CSG
XmNtabTranslations XmCTranslations
XtTranslations [focus translations] CG
XmNtabWidgetList XmCReadOnly
WidgetList dynamic G
.fi
.IP XmNactiveTab
The position of the currently active tab. The first tab on the
left has a position of 0. If no tab is active, this value equals -1.
.IP XmNautoSelect
If True (the default), the Folder will activate its first tab
when it is realized. No callback is generated by this action.
If False, no initial tab will be activated.
.IP XmNblankBackground
The color of the area between tabs, around tabs, and between
tabs and the edge of the Folder.
.IP XmNblankBackgroundPixmap
The pixmap to display as a background (tiled) in the blank background
area. See XmNblankBackground.
.IP XmNcornerDimension
If XmNcornerStyle is XmCORNER_LINE, this value is used to determine
the length of the lines that clip the corners of the tabs. The
greater this value is, the longer the corner lines will be. If
XmNcornerStyle is XmCORNER_ARC, this value is used to determine
the sizes of the arcs in the corners of the tabs. If XmNcornerStyle
is XmCORNER_NONE, this resource has no effect.
.IP XmNcornerStyle
Defines the type of corners on the individual tabs. Possible values:
.nf
XmCORNER_NONE /* no corners */
XmCORNER_LINE /* corners are beveled */
XmCORNER_ARC /* corners are round */
.fi
.IP XmNdebugLevel
If set to a value greater than 0, debugging messages will be
printed to stderr. When set to 0 (the default) only error
messages will be generated.
.IP XmNfontList
The default font list for tabs created with the XmLFolderAddTab()
functions. Changing this value does not affect existing widgets.
If this value is NULL, a font list is obtained from the nearest
parent that is a subclass of BulletinBoard, MenuShell, or VendorShell.
.IP XmNhighlightThickness
The thickness of the highlight drawn around the Primitive widget
contained in the active tab. When a Primitive widget is added to
the Folder, its highlightThickness is set to 0. The Folder is
responsible for drawing the highlight in the active tab.
This is necessary because if the Primitive widget were allowed
to draw the highlight, it would erase the highlight with
an incorrect color.
.IP XmNinactiveBackground
The background color of inactive tabs. This value is initially set
to the background color of the Folder widget.
.IP XmNinactiveForeground
The foreground color of inactive tabs. This value is initially
set to the foreground color of the Folder widget.
.IP XmNmarginHeight
If tab placement is on the top or bottom, this value is the margin
between tab widgets and the top of tabs, and between tab widgets
and the bottom of tabs. If tab placement is on the left or right,
this value is the margin between tab widgets and the left of tabs,
and between tab widgets and the right of tabs.
.IP XmNmarginWidth
If tab placement is on the top or bottom, this value is the margin
between tab widgets and the left of tabs, and between tab widgets
and the right of tabs. If tab placement is on the left
or right, this value is the margin between tab widgets and the top of
tabs and between tab widgets and bottoms of tabs.
.IP XmNpixmapMargin
The margin between the tab widget and any pixmap to its left.
.IP XmNresizePolicy
This policy determines when the Folder should perform a request
for a new size from its parent.
A policy of XmRESIZE_STATIC (the default) will cause the Folder
to initially request a size which includes the preferred size of
its children and then reject any subsequent resize requests from
its non-tab widget children. A policy of XmRESIZE_DYNAMIC will
cause the Folder to resize itself to include the preferred size
of any of its children whenever its children change size. A
policy of XmRESIZE_NONE will cause the Folder to never generate
a resize request and also will cause it not to perform geometry
management on its non-tab widget children. Possible values:
.nf
XmRESIZE_NONE /* no resize requests and no
placement or geometry management
of non-tab children */
XmRESIZE_STATIC /* initially layout to include
preferred size of children */
XmRESIZE_DYNAMIC /* dynamically resize as children
request new size */
.fi
.IP XmNrotateWhenLeftRight
If True, XmDrawnButton based tabs (including tabs created with the
XmLFolderAddTab() functions) will display their text vertically
instead of horizontally if they are placed on the left or right
of the Folder. This occurs when the Folder's XmNtabPlacement
resource is XmFOLDER_LEFT or XmFOLDER_RIGHT. Tabs on the
left would have their text drawn up and tabs on the right
would have their text drawn down. If False, tabs are left
oriented horizontally regardless of their placement.
.IP XmNspacing
The amount of space between tabs.
.IP XmNtabBarHeight
The height, in pixels, of the tab bar. If tab placement is on
the left or right, this value is the width of the tab bar.
This value may not be set and is only valid after the Folder
has been managed and has performed its layout.
.IP XmNtabCount
The number of tabs displayed.
.IP XmNtabPlacement
Where to place the tabs. Possible values:
.nf
XmFOLDER_TOP /* top left to right */
XmFOLDER_BOTTOM /* bottom left to right */
XmFOLDER_LEFT /* left top to bottom */
XmFOLDER_RIGHT /* right top to bottom */
.fi
.IP XmNtabsPerRow
If set to 0 (the default), the Folder will place tabs in a
single row one after another during layout. If non-zero,
this value specifies the number of rows of tabs to appear
in the Folder and the Folder will pad each row to the width
of the Folder by proportionally sizing the tabs based on
their contents and the width of the row.
.IP XmNtabTranslations
The translation table used to augment the translations of
Primitive widgets added to the Folder. The Folder overrides
the FocusIn and FocusOut translations of its Primitive widget
children allowing it to draw and erase tab highlights.
.IP XmNtabWidgetList
The list of widgets contained inside the tabs. These widgets
are subclasses of XmPrimitive.
.SS Constraint Resources
Folder defines the following constraint resources.
.nf
.ft B
Name Class
Type Default Access
.ft P
XmNtabFreePixmaps XmCTabFreePixmap
Boolean False CSG
XmNtabInactivePixmap XmCTabInactivePixmap
Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNtabManagedName XmCTabManagedName
String NULL CSG
XmNtabManagedWidget XmCTabManagedWidget
Widget NULL CSG
XmNtabPixmap XmCTabPixmap
Pixmap XmUNSPECIFIED_PIXMAP CSG
.fi
.IP XmNtabFreePixmaps
If True, the Folder will call XFreePixmap on the XmNtabPixmap and
XmNtabInactivePixmap pixmaps when this widget is destroyed.
This value is set to True for tabs created by the
XmLFolderAddBitmapTab() functions.
.IP XmNtabInactivePixmap
The pixmap to appear in the left of the tab when the tab is inactive.
.IP XmNtabManagedName
By setting a managed name on a tab widget and setting the same
managed name on a Manager widget, you specify that the tab
manages the Manager widget. You can also specify that a tab
manages a specific Manager widget by setting the managed name
on the tab widget to the name (XtName) of the Manager widget.
If a tab widget has a managed name, the XmNtabManagedWidget
resource of the tab widget is ignored.
.IP XmNtabManagedWidget
Specifies a widget to be managed when this widget is activated.
When this widget is deactivated, its managed widget will be
unmanaged. This resource allows Manager widgets contained in the
center of the Folder to be attached to tabs, so when a user
selects a tab its attached Manager widget will be displayed on
the screen.
.IP XmNtabPixmap
The pixmap to appear in the left of the tab when the tab is active.
.SS Callback Resources
Folder defines the following callback resources.
.nf
.ft B
Callback Reason
.ft P
XmNactivateCallback XmCR_ACTIVATE
.fi
.SS Callback Structure
Each callback function is passed a pointer to the structure shown below.
.nf
typedef struct
{
int reason; /* callback reason */
XEvent *event; /* event callback or NULL */
int pos; /* position of tab to act */
int allowActivate; /* allow/disallow act (1/0) */
} XmLFolderCallbackStruct;
.fi
pos will be set to the position of the tab (with 0 as the first tab
on the left) to activate for XmNactivateCallback callbacks.
If allowActivate is set to 0 by the callback function, the tab will not
be activated and the attempt to activate the given tab will be rejected.
.SS Inherited Resources
Folder inherits the resources shown below.
.nf
.ft B
Resource From Resource From
.ft P
XmNaccelerators Core XmNinitialResourcePersist Core
XmNancestorSensitive Core XmNinsertPosition Composite
XmNbackground Core XmNmappedWhenManaged Core
XmNbackgroundPixmap Core XmNnavagationType Manager
XmNborderColor Core XmNnumChildren Composite
XmNborderPixmap Core XmNscreen Core
XmNborderWidth Core XmNsensitive Core
XmNbottomShadowColor Manager XmNshadowThicknses Manager
XmNbottomShadowPixmap Manager XmNstringDirection Manager
XmNchildren Composite XmNtopShadowColor Manager
XmNcolormap Core XmNtopShadowPixmap Manager
XmNdepth Core XmNtranslations Core
XmNdestroyCallback Core XmNtraversalOn Manager
XmNforeground Manager XmNunitType Manager
XmNheight Core XmNuserData Manager
XmNhelpCallback Manager XmNwidth Core
XmNhighlightColor Manager XmNx Core
XmNhighlightPixmap Manager XmNy Core
.fi
.SS Folder Translations
Folder defines the translations shown below.
.nf
.ft B
Event Action
.ft P
BSelect Press XmLFolderActivate()
.fi
.SS Folder Primitive Translations
Folder overrides the translations shown below for all of
its Primitive widget children.
.nf
.ft B
Event Action
.ft P
FocusIn PrimitiveFocusIn() XmLFolderPrimFocusIn()
FocusOut PrimtiveFocusOut() XmLFolderPrimFocusOut()
.fi
.SS Action Routines
Folder defines the actions shown below.
.IP XmLFolderActivate()
Activates the tab at the location of the event passed to the action routine.
.IP XmLFolderPrimFocusIn()
Draws a highlight around the given widget.
.IP XmLFolderPrimFocusOut()
Erases the highlight around the given widget.
.SH "SEE ALSO"
XmLCreateFolder(3X) XmLFolderAddBitmapTab(3X) XmLFolderAddBitmapTabForm(3X)
XmLFolderAddTab(3X) XmLFolderAddTabForm(3X) XmLFolderSetActiveTab(3X)

View File

@@ -1,60 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLFolderAddBitmapTab 3X "R1" "XML1" "XML"
.SH NAME
XmLFolderAddBitmapTab \- add a tab to a Folder containing a string and bitmap
.SH SYNTAX
Widget XmLFolderAddBitmapTab(\fIwidget\fP, \fIstring\fP, \
\fIbitmapBits\fP, \fIbitmapWidth\fP, \fIbitmapHeight\fP)
.br
Widget \fIwidget\fP;
.br
XmString \fIstring\fP;
.br
char *\fIbitmapBits\fP;
.br
int \fIbitmapWidth\fP;
.br
int \fIbitmapHeight\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Folder widget ID
.IP \fIstring\fP 1i
string to display in the tab
.IP \fIbitmapBits\fP 1i
bitmap to display in the tab
.IP \fIbitmapWidth\fP 1i
width of the bitmap in pixels
.IP \fIbitmapHeight\fP 1i
height of the bitmap in pixels
.SH DESCRIPTION
Adds a tab to the Folder \fIwidget\fP containing the \fIstring\fP and
\fIbitmap\fP specified.
.SH RETURN VALUE
Returns the widget ID of the DrawnButton widget contained in the tab.
.SH "SEE ALSO"
XmLFolderAddBitmapTabForm(3X) XmLFolderAddTab(3X) XmLFolder(3X)

View File

@@ -1,62 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLFolderAddBitmapTabForm 3X "R1" "XML1" "XML"
.SH NAME
XmLFolderAddBitmapTabForm \- add a tab to a Folder containing a string
and bitmap and a form managed by the tab
.SH SYNTAX
Widget XmLFolderAddBitmapTabForm(\fIwidget\fP, \fIstring\fP, \
\fIbitmapBits\fP, \fIbitmapWidth\fP, \fIbitmapHeight\fP)
.br
Widget \fIwidget\fP;
.br
XmString \fIstring\fP;
.br
char *\fIbitmapBits\fP;
.br
int \fIbitmapWidth\fP;
.br
int \fIbitmapHeight\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Folder widget ID
.IP \fIstring\fP 1i
string to display in the tab
.IP \fIbitmapBits\fP 1i
bitmap to display in the tab
.IP \fIbitmapWidth\fP 1i
width of the bitmap in pixels
.IP \fIbitmapHeight\fP 1i
height of the bitmap in pixels
.SH DESCRIPTION
Adds a tab to the Folder \fIwidget\fP containing the \fIstring\fP and
\fIbitmap\fP specified and adds a form (XmForm widget) to the Folder
which is managed by that tab.
.SH RETURN VALUE
Returns the widget ID of the Form widget managed by the new tab.
.SH "SEE ALSO"
XmLFolderAddTab(3X) XmLFolder(3X)

View File

@@ -1,46 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLFolderAddTab 3X "R1" "XML1" "XML"
.SH NAME
XmLFolderAddTab \- add a tab to a Folder containing a string
.SH SYNTAX
Widget XmLFolderAddTab(\fIwidget\fP, \fIstring\fP)
.br
Widget \fIwidget\fP;
.br
XmString \fIstring\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Folder widget ID
.IP \fIstring\fP 1i
string to display in the tab
.SH DESCRIPTION
Adds a tab to a Folder containing the \fIstring\fP specified.
.SH RETURN VALUE
Returns the widget ID of the DrawnButton widget contained in the tab.
.SH "SEE ALSO"
XmLFolderAddBitmapTab(3X) XmLFolder(3X)

View File

@@ -1,49 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLFolderAddTabForm 3X "R1" "XML1" "XML"
.SH NAME
XmLFolderAddTabForm \- add a tab to a Folder containing a string and
a form managed by the tab
.SH SYNTAX
Widget XmLFolderAddTabForm(\fIwidget\fP, \fIstring\fP)
.br
Widget \fIwidget\fP;
.br
XmString \fIstring\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Folder widget ID
.IP \fIstring\fP 1i
string to display in the tab
.SH DESCRIPTION
Adds a tab to the Folder \fIwidget\fP containing the \fIstring\fP
specified and adds a form (XmForm widget) to the Folder which is
managed by that tab.
.SH RETURN VALUE
Returns the widget ID of the Form widget managed by the new tab.
.SH "SEE ALSO"
XmLFolderAddBitmapTabForm(3X) XmLFolder(3X)

View File

@@ -1,52 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLFolderSetActiveTab 3X "R1" "XML1" "XML"
.SH NAME
XmLFolderSetActiveTab \- activate a tab at a given position
.SH SYNTAX
void XmLFolderSetActiveTab(\fIwidget\fP, \fIposition\fP, \fInotify\fP)
.br
Widget \fIwidget\fP;
.br
int \fIposition\fP;
.br
Boolean \fInotify\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Folder widget ID
.IP \fIposition\fP 1i
active tab position
.IP \fInotify\fP 1i
if True, activate callback will be called
.SH DESCRIPTION
Activates a tab at the given \fIposition\fP. If the activated tab
manages a widget, that widget will be managed and any other widgets
managed by other tabs will be unmanaged. The Folder's XmNactivateCallback
callbacks will be called if \fInotify\fP is True and the position passed
is different from the current active position.
.SH "SEE ALSO"
XmLFolder(3X)

View File

@@ -1,42 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLFontListCopyDefault 3X "R1" "XML1" "XML"
.SH NAME
XmLFontListCopyDefault \- returns a copy of the default font list for a widget
.SH SYNTAX
XmLFontList XmLFontListCopyDefault(\fIwidget\fP)
.br
Widget \fIwidget\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
widget to retrieve default font list for
.SH DESCRIPTION
Returns a copy of the default font list for the given \fIwidget\fP.
The default font list is found by looking for the font list default
of the nearest BulletinBoard, MenuShell or VendorShell parent.
.SH RETURN VALUE
A copy of the default font list for the given \fIwidget\fP.

View File

@@ -1,56 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLFontListGetDimensions 3X "R1" "XML1" "XML"
.SH NAME
XmLFontListGetDimensions \- calculates overall width and height of characters
in a font list
.SH SYNTAX
void XmLFontListGetDimensions(\fIfontList\fP, \fIwidth\fP, \
\fIheight\fP, \fIuseAverageWidth\fP)
.br
XmFontList \fIfontList\fP;
.br
short *\fIwidth\fP;
.br
short *\fIheight\fP;
.br
Boolean \fIuseAverageWidth\fP;
.LP
.SH ARGUMENTS
.IP \fIfontList\fP 1i
font list
.IP \fIwidth\fP 1i
maximum or average character width in fontlist
.IP \fIheight\fP 1i
maximum character height in fontlist
.IP \fIuseAverageWidth\fP 1i
if True, return average glyph width instead of maximum glyph width
.SH DESCRIPTION
Calculates the overall \fIwidth\fP and \fIheight\fP of the characters in
a given \fIfontList\fP. The height returned is the height of the tallest
glyph. If \fIuseAverageWidth\fP is False, the width returned is the
width of the widest glyph. If True, the width returned is the average
width of all of the glyphs.

File diff suppressed because it is too large Load Diff

View File

@@ -1,61 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridAddColumns 3X "R1" "XML1" "XML"
.SH NAME
XmLGridAddColumns \- add columns to a Grid
.SH SYNTAX
void XmLGridAddColumns(\fIwidget\fP, \fItype\fP, \
\fIposition\fP, \fIcount\fP)
.br
Widget \fIwidget\fP;
.br
unsigned char \fItype\fP;
.br
int \fIposition\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fItype\fP 1i
type of column
.IP \fIposition\fP 1i
position of first column
.IP \fIcount\fP 1i
number of columns to add
.SH DESCRIPTION
Adds \fIcount\fP columns of the given \fItype\fP at the specified
\fIposition\fP. See the XmLGrid man page for an explaination of column
types. A position of 0 indicates the first column
of the given type. A position of -1 specifies after the last
position of that column type. The Grid will call its XmNaddCallback
callbacks for each column and cell it creates. It will remain
scrolled to the column scrolled to prior to the addition of
columns, and focus will remain in the column which had focus
prior to the addition of the columns.
.SH "SEE ALSO"
XmLGrid(3X) XmLGridAddRows(3X)

View File

@@ -1,61 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridAddRows 3X "R1" "XML1" "XML"
.SH NAME
XmLGridAddRows \- add rows to a Grid
.SH SYNTAX
void XmLGridAddRows(\fIwidget\fP, \fItype\fP, \
\fIposition\fP, \fIcount\fP)
.br
Widget \fIwidget\fP;
.br
unsigned char \fItype\fP;
.br
int \fIposition\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fItype\fP 1i
type of row
.IP \fIposition\fP 1i
position of first row
.IP \fIcount\fP 1i
number of rows to add
.SH DESCRIPTION
Adds \fIcount\fP rows of the given \fItype\fP at the specified
\fIposition\fP. See the XmLGrid man page for an explaination of row
types. A position of 0 indicates the first row
of the given type. A position of -1 specifies after the last
position of that row type. The Grid will call its XmNaddCallback
callbacks for each row and cell it creates. It will remain
scrolled to the row scrolled to prior to the addition of
rows, and focus will remain in the row which had focus
prior to the addition of the rows.
.SH "SEE ALSO"
XmLGrid(3X) XmLGridAddColumns(3X)

View File

@@ -1,47 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridColumnIsVisible 3X "R1" "XML1" "XML"
.SH NAME
XmLGridColumnIsVisible \- determine visiblily of a content column
.SH SYNTAX
void XmLGridColumnIsVisible(\fIwidget\fP, \fIcolumn\fP)
.br
Widget \fIwidget\fP;
.br
int \fIcolumn\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fIcolumn\fP 1i
position of content column
.SH DESCRIPTION
Determines visibility of a content column.
.SH RETURN VALUE
Returns True if any part of the content column given is visible
to the user, and False otherwise.
.SH "SEE ALSO"
XmLGrid(3X) XmLGridRowIsVisible(3X)

View File

@@ -1,78 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridCopyPos 3X "R1" "XML1" "XML"
.SH NAME
XmLGridCopyPos \- copy the string contents of cells in a Grid at a
given location to the clipboard
.SH SYNTAX
Boolean XmLGridCopyPos(\fIwidget\fP, \fItime\fP, \fIrowType\fP, \fIrow\fP, \
\fIcolumnType\fP, \fIcolumn\fP, \fInrow\fP, \fIncolumn\fP)
.br
Widget \fIwidget\fP;
.br
Time \fItime\fP;
.br
unsigned char \fIrowType\fP;
.br
int \fIrow\fP;
.br
unsigned char \fIcolumnType\fP;
.br
int \fIcolumn\fP;
.br
int \fInrow\fP;
.br
int \fIncolumn\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fItime\fP 1i
Time of event
.IP \fIrowType\fP 1i
type of first row
.IP \fIrow\fP 1i
location of first row
.IP \fIcolumnType\fP 1i
type of first column
.IP \fIcolumn\fP 1i
location of first column
.IP \fInrow\fP 1i
number of rows
.IP \fIncolumn\fP 1i
number of columns
.SH DESCRIPTION
Copies the contents of cells in \fInrow\fP number of rows and
\fIncolumn\fP number of columns to the clipboard
starting at the row and column specified by
\fIrowType\fP, \fIrow\fP, \fIcolumnType\fP, and \fIcolumn\fP.
The \fItime\fP parameter should be set to the time of the event
(most likely CurrentTime).
.SH RETURN VALUE
A value of True is returned upon success, and False is returned
upon failure.
.SH "SEE ALSO"
XmLGridCopySelected(3X) XmLGridPaste(3X)

View File

@@ -1,49 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridCopySelected 3X "R1" "XML1" "XML"
.SH NAME
XmLGridCopySelected \- copy the string contents of selected cells in a Grid
to the clipboard
.SH SYNTAX
Boolean XmLGridCopySelected(\fIwidget\fP, \fItime\fP)
.br
Widget \fIwidget\fP;
.br
Time \fItime\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fItime\fP 1i
Time of event
.SH DESCRIPTION
Copies the contents any selected cells in a Grid to the clipboard.
The \fItime\fP parameter should be set to the time of the event
(most likely CurrentTime).
.SH RETURN VALUE
True is returned upon success, and False is returned upon failure.
.SH "SEE ALSO"
XmLGridCopyPos(3X) XmLGridPaste(3X)

View File

@@ -1,53 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeleteAllColumns 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeleteAllColumns \- delete all columns of a given type
.SH SYNTAX
void XmLGridDeleteAllColumns(\fIwidget\fP, \fItype\fP)
.br
Widget \fIwidget\fP;
.br
unsigned char \fItype\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fItype\fP 1i
type of column
.SH DESCRIPTION
Deletes all columns of the given type. The Grid will call its
XmNdeleteCallback callbacks for each column and cell deleted.
If possible, the focus will remain in the column which had focus
prior to the deletion of columns. If the cell which has focus
is in one of the columns deleted, the Grid's XmNcellFocusCallback
callbacks will be called with a reason of XmCR_CELL_FOCUS_OUT before
that column is deleted. If a cell in one of the columns is
currently being edited, the Grid's XmNeditCallback callbacks
will be called with a reason of XmCR_EDIT_CANCEL before that
column is deleted.
.SH "SEE ALSO"
XmLGrid(3X) XmLGridDeleteColumns(3X) XmLGridDeleteAllRows(3X)

View File

@@ -1,53 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeleteAllRows 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeleteAllRows \- delete all rows of a given type
.SH SYNTAX
void XmLGridDeleteAllRows(\fIwidget\fP, \fItype\fP)
.br
Widget \fIwidget\fP;
.br
unsigned char \fItype\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fItype\fP 1i
type of row
.SH DESCRIPTION
Deletes all rows of the given type. The Grid will call its
XmNdeleteCallback callbacks for each row and cell deleted.
If possible, the focus will remain in the row which had focus
prior to the deletion of rows. If the cell which has focus
is in one of the rows deleted, the Grid's XmNcellFocusCallback
callbacks will be called with a reason of XmCR_CELL_FOCUS_OUT before
that row is deleted. If a cell in one of the rows is
currently being edited, the Grid's XmNeditCallback callbacks
will be called with a reason of XmCR_EDIT_CANCEL before that
row is deleted.
.SH "SEE ALSO"
XmLGrid(3X) XmLGridDeleteRows(3X) XmLGridDeleteAllColumns(3X)

View File

@@ -1,64 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeleteColumns 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeleteColumns \- delete columns in a Grid
.SH SYNTAX
void XmLGridDeleteColumns(\fIwidget\fP, \fItype\fP, \
\fIposition\fP, \fIcount\fP)
.br
Widget \fIwidget\fP;
.br
unsigned char \fItype\fP;
.br
int \fIposition\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fItype\fP 1i
type of column
.IP \fIposition\fP 1i
position of first column
.IP \fIcount\fP 1i
number of columns to delete
.SH DESCRIPTION
Deletes \fIcount\fP columns of the given \fItype\fP in the Grid at
the specified \fIposition\fP. A position of 0 indicates the
first column of the given type. The Grid will call its
XmNdeleteCallback callbacks for each column and cell deleted.
If possible, the focus will remain in the column which had
focus prior to the deletion of columns. If the cell which has
focus is in one of the columns deleted, the Grid's
XmNcellFocusCallback callbacks will be called with a reason of
XmCR_CELL_FOCUS_OUT before that column is deleted.
If a cell in one of the columns is currently being edited,
the Grid's XmNeditCallback callbacks will be called with a
reason of XmCR_EDIT_CANCEL before that column is deleted.
.SH "SEE ALSO"
XmLGrid(3X) XmLGridDeleteRows(3X)

View File

@@ -1,64 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeleteRows 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeleteRows \- delete rows in a Grid
.SH SYNTAX
void XmLGridDeleteRows(\fIwidget\fP, \fItype\fP, \
\fIposition\fP, \fIcount\fP)
.br
Widget \fIwidget\fP;
.br
unsigned char \fItype\fP;
.br
int \fIposition\fP;
.br
int \fIcount\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fItype\fP 1i
type of row
.IP \fIposition\fP 1i
position of first row
.IP \fIcount\fP 1i
number of rows to delete
.SH DESCRIPTION
Deletes \fIcount\fP rows of the given \fItype\fP in the Grid at
the specified \fIposition\fP. A position of 0 indicates the
first row of the given type. The Grid will call its
XmNdeleteCallback callbacks for each row and cell deleted.
If possible, the focus will remain in the row which had
focus prior to the deletion of rows. If the cell which has
focus is in one of the rows deleted, the Grid's
XmNcellFocusCallback callbacks will be called with a reason of
XmCR_CELL_FOCUS_OUT before that row is deleted.
If a cell in one of the rows is currently being edited,
the Grid's XmNeditCallback callbacks will be called with a
reason of XmCR_EDIT_CANCEL before that row is deleted.
.SH "SEE ALSO"
XmLGrid(3X) XmLGridDeleteColumns(3X)

View File

@@ -1,46 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeselectAllCells 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeselectAllCells \- deselect all content cells
.SH SYNTAX
void XmLGridDeselectAllCells(\fIwidget\fP, \fInotify\fP)
.br
Widget \fIwidget\fP;
.br
Boolean \fInotify\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fInotify\fP 1i
if True, deselect callbacks will be called
.SH DESCRIPTION
Deselects all content cells in the Grid. If \fInotify\fP is True,
the Grid's XmNdeselectCallback callbacks will be called for
each cell deselected.
.SH "SEE ALSO"
XmLGridDeselectAllRows(3X) XmLGridDeselectAllColumns(3X)

View File

@@ -1,46 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeselectAllColumns 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeselectAllColumns \- deselect all content columns
.SH SYNTAX
void XmLGridDeselectAllColumns(\fIwidget\fP, \fInotify\fP)
.br
Widget \fIwidget\fP;
.br
Boolean \fInotify\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fInotify\fP 1i
if True, deselect callbacks will be called
.SH DESCRIPTION
Deselects all content columns in the Grid. If \fInotify\fP is True,
the Grid's XmNdeselectCallback callbacks will be called for
each column deselected.
.SH "SEE ALSO"
XmLGridDeselectAllCells(3X) XmLGridDeselectAllRows(3X)

View File

@@ -1,46 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeselectAllRows 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeselectAllRows \- deselect all content rows
.SH SYNTAX
void XmLGridDeselectAllRows(\fIwidget\fP, \fInotify\fP)
.br
Widget \fIwidget\fP;
.br
Boolean \fInotify\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fInotify\fP 1i
if True, deselect callbacks will be called
.SH DESCRIPTION
Deselects all content rows in the Grid. If \fInotify\fP is True,
the Grid's XmNdeselectCallback callbacks will be called for
each row deselected.
.SH "SEE ALSO"
XmLGridDeselectAllCells(3X) XmLGridDeselectAllColumns(3X)

View File

@@ -1,57 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeselectCell 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeselectCell \- deselect a cell
.SH SYNTAX
void XmLGridDeselectCell(\fIwidget\fP, \fIrow\fP, \
\fIcolumn\fP, \fInotify\fP)
.br
Widget \fIwidget\fP;
.br
int \fIrow\fP;
.br
int \fIcolumn\fP;
.br
Boolean \fInotify\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fIrow\fP 1i
position of content row
.IP \fIcolumn\fP 1i
position of content column
.IP \fInotify\fP 1i
if True, deselect callbacks will be called
.SH DESCRIPTION
Deselects the cell in the Grid at the content \fIrow\fP and
content \fIcolumn\fP specified. If \fInotify\fP is True
and the cell is currently selected, the Grid's XmNdeselectCallback
callbacks will be called.
.SH "SEE ALSO"
XmLGridDeselectAllCells(3X) XmLGridDeselectRow(3X)
XmLGridDeselectColumn(3X)

View File

@@ -1,50 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeselectColumn 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeselectColumn \- deselect a column
.SH SYNTAX
void XmLGridDeselectColumn(\fIwidget\fP, \fIcolumn\fP, \fInotify\fP)
.br
Widget \fIwidget\fP;
.br
int \fIcolumn\fP;
.br
Boolean \fInotify\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fIcolumn\fP 1i
position of content column
.IP \fInotify\fP 1i
if True, deselect callbacks will be called
.SH DESCRIPTION
Deselects the specified content \fIcolumn\fP in the Grid. If \fInotify\fP
is True and the column is currently selected, the Grid's
XmNdeselectCallback callbacks will be called.
.SH "SEE ALSO"
XmLGridDeselectAllColumns(3X)

View File

@@ -1,50 +0,0 @@
.\" The contents of this file are subject to the Netscape Public License
.\" Version 1.0 (the "NPL"); you may not use this file except in
.\" compliance with the NPL. You may obtain a copy of the NPL at
.\" http://www.mozilla.org/NPL/
.\"
.\" Software distributed under the NPL is distributed on an "AS IS" basis,
.\" WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
.\" for the specific language governing rights and limitations under the
.\" NPL.
.\"
.\" The Initial Developer of this code under the NPL is Netscape
.\" Communications Corporation. Portions created by Netscape are
.\" Copyright (C) 1998 Netscape Communications Corporation. All Rights
.\" Reserved.
.\"
.\"
.\"
.\"
.\" The following source code is part of the Microline Widget Library.
.\" The Microline widget library is made available to Mozilla developers
.\" under the Netscape Public License (NPL) by Neuron Data. To learn
.\" more about Neuron Data, please visit the Neuron Data Home Page at
.\" http://www.neurondata.com.
.\"
.\"
.TH XmLGridDeselectRow 3X "R1" "XML1" "XML"
.SH NAME
XmLGridDeselectRow \- deselect a row
.SH SYNTAX
void XmLGridDeselectRow(\fIwidget\fP, \fIrow\fP, \fInotify\fP)
.br
Widget \fIwidget\fP;
.br
int \fIrow\fP;
.br
Boolean \fInotify\fP;
.LP
.SH ARGUMENTS
.IP \fIwidget\fP 1i
Grid widget ID
.IP \fIrow\fP 1i
position of content row
.IP \fInotify\fP 1i
if True, deselect callbacks will be called
.SH DESCRIPTION
Deselects the specified content \fIrow\fP in the Grid. If \fInotify\fP is
True and the row is currently selected, the Grid's
XmNdeselectCallback callbacks will be called.
.SH "SEE ALSO"
XmLGridDeselectAllRows(3X)

Some files were not shown because too many files have changed in this diff Show More