mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
Moved the cross-platform widgets into their own directory.
Moved the platform specific factories into the new "build" directory. The "build" directory now links the spwidgets and the platforms specific widgets together.
This commit is contained in:
parent
fada720301
commit
7ccaf178cc
@ -20,7 +20,7 @@ DEPTH=../..
|
||||
ifeq ($(OS_TARGET),Rhapsody)
|
||||
DIRS = rhapsody
|
||||
else
|
||||
DIRS = motif
|
||||
DIRS = xpwidgets motif build
|
||||
endif
|
||||
|
||||
include $(DEPTH)/config/config.mk
|
||||
@ -28,3 +28,4 @@ include $(DEPTH)/config/config.mk
|
||||
TARGET = $(LIBRARY)
|
||||
|
||||
include $(DEPTH)/config/rules.mk
|
||||
|
||||
|
56
widget/src/build/Makefile
Normal file
56
widget/src/build/Makefile
Normal file
@ -0,0 +1,56 @@
|
||||
#!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 = ../../..
|
||||
|
||||
include $(DEPTH)/config/config.mk
|
||||
|
||||
LIBRARY_NAME = widgetunix
|
||||
|
||||
MODULE=raptor
|
||||
|
||||
REQUIRES=util img xpcom raptor netlib
|
||||
|
||||
INCLUDES+= -I../xpwidgets -I../motif -I.
|
||||
|
||||
CPPSRCS=dlldeps.cpp nsWidgetSupport.cpp nsMotifWidgetFactory.cpp
|
||||
|
||||
ifeq ($(OS_ARCH),IRIX)
|
||||
LD = $(CCC)
|
||||
LD_ALL = -all
|
||||
LD_NONE = -none
|
||||
endif
|
||||
|
||||
EXTRA_DSO_LDOPTS+=\
|
||||
$(DIST)/lib/libraptorwidgetunix_s.a \
|
||||
$(DIST)/lib/libraptorbasewidget_s.a \
|
||||
$(DIST)/bin/libxpcom.so \
|
||||
$(DIST)/bin/libraptorbase.so \
|
||||
$(DIST)/bin/libreg.so \
|
||||
$(LIBNSPR)\
|
||||
$(DIST)/lib/libplc21.a
|
||||
|
||||
# This should really be done properly in 'config'
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
EXTRA_DSO_LDOPTS+=\
|
||||
-L/usr/X11R6/lib -lX11 -lm
|
||||
else
|
||||
EXTRA_DSO_LDOPTS+= -lXm -lXt -lX11 -lm
|
||||
endif
|
||||
|
||||
include $(DEPTH)/config/rules.mk
|
||||
|
29
widget/src/build/dlldeps.cpp
Normal file
29
widget/src/build/dlldeps.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
|
||||
// Force references to all of the symbols that we want exported from
|
||||
// the dll that are located in the .lib files we link with
|
||||
|
||||
#include "Xm/Xm.h"
|
||||
|
||||
XtAppContext gAppContext;
|
||||
|
||||
void XXXNeverCalled()
|
||||
{
|
||||
gAppContext = NULL;
|
||||
}
|
@ -41,13 +41,13 @@
|
||||
#include "nsMenu.h"
|
||||
#include "nsMenuItem.h"
|
||||
#include "nsPopUpMenu.h"
|
||||
/* XXX Not checked in yet
|
||||
|
||||
#include "nsImageButton.h"
|
||||
#include "nsMenuButton.h"
|
||||
#include "nsToolbar.h"
|
||||
#include "nsToolbarManager.h"
|
||||
#include "nsToolbarItemHolder.h"
|
||||
*/
|
||||
|
||||
|
||||
|
||||
static NS_DEFINE_IID(kCWindow, NS_WINDOW_CID);
|
||||
@ -80,13 +80,12 @@ static NS_DEFINE_IID(kCMenuBar, NS_MENUBAR_CID);
|
||||
static NS_DEFINE_IID(kCMenu, NS_MENU_CID);
|
||||
static NS_DEFINE_IID(kCMenuItem, NS_MENUITEM_CID);
|
||||
static NS_DEFINE_IID(kCPopUpMenu, NS_POPUPMENU_CID);
|
||||
/* XXX Not checked in yet
|
||||
|
||||
static NS_DEFINE_IID(kCImageButton, NS_IMAGEBUTTON_CID);
|
||||
static NS_DEFINE_IID(kCToolBar, NS_TOOLBAR_CID);
|
||||
static NS_DEFINE_IID(kCToolBarManager, NS_TOOLBARMANAGER_CID);
|
||||
static NS_DEFINE_IID(kCToolBarItemHolder, NS_TOOLBARITEMHOLDER_CID);
|
||||
static NS_DEFINE_IID(kCMenuButton, NS_MENUBUTTON_CID);
|
||||
*/
|
||||
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
|
||||
@ -216,8 +215,8 @@ nsresult nsWidgetFactory::CreateInstance(nsISupports *aOuter,
|
||||
else if (mClassID.Equals(kCMenuItem)) {
|
||||
inst = (nsISupports*)new nsMenuItem();
|
||||
}
|
||||
/* XXX Not checked in yet inst = (nsISupports*)(nsWindow*)new nsImageButton();
|
||||
else if (mClassID.Equals(kCImageButton)) {
|
||||
inst = (nsISupports*)(nsWindow*)new nsImageButton();
|
||||
}
|
||||
else if (mClassID.Equals(kCMenuButton)) {
|
||||
inst = (nsISupports*)(nsWindow*)new nsMenuButton();
|
||||
@ -231,7 +230,7 @@ nsresult nsWidgetFactory::CreateInstance(nsISupports *aOuter,
|
||||
else if (mClassID.Equals(kCToolBarItemHolder)) {
|
||||
inst = (nsISupports*)(nsIToolbarItemHolder *) new nsToolbarItemHolder();
|
||||
}
|
||||
*/
|
||||
|
||||
else if (mClassID.Equals(kCPopUpMenu)) {
|
||||
inst = (nsISupports*)new nsPopUpMenu();
|
||||
}
|
@ -20,7 +20,7 @@ DEPTH = ../../..
|
||||
|
||||
include $(DEPTH)/config/config.mk
|
||||
|
||||
LIBRARY_NAME = widgetunix
|
||||
LIBRARY_NAME = raptorwidgetunix_s
|
||||
|
||||
MODULE=raptor
|
||||
|
||||
@ -28,27 +28,13 @@ REQUIRES=util img xpcom raptor netlib
|
||||
|
||||
DEFINES = -D_IMPL_NS_WIDGET
|
||||
|
||||
EXTRA_DSO_LDOPTS+=\
|
||||
$(DIST)/bin/libxpcom.so \
|
||||
$(DIST)/bin/libraptorbase.so \
|
||||
$(DIST)/bin/libreg.so \
|
||||
$(LIBNSPR)\
|
||||
$(DIST)/lib/libplc21.a
|
||||
|
||||
# This should really be done properly in 'config'
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
EXTRA_DSO_LDOPTS+=\
|
||||
-L/usr/X11R6/lib -lX11 -lm
|
||||
else
|
||||
EXTRA_DSO_LDOPTS+= -lXm -lXt -lX11 -lm
|
||||
endif
|
||||
INCLUDES+= -I../xpwidgets -I../motif -I.
|
||||
|
||||
CPPSRCS= \
|
||||
nsMenuBar.cpp \
|
||||
nsMenu.cpp \
|
||||
nsMenuItem.cpp \
|
||||
nsPopUpMenu.cpp \
|
||||
nsWidgetSupport.cpp \
|
||||
nsComboBox.cpp \
|
||||
nsTextHelper.cpp \
|
||||
nsTextAreaWidget.cpp \
|
||||
@ -64,14 +50,12 @@ CPPSRCS= \
|
||||
nsToolkit.cpp \
|
||||
nsLabel.cpp \
|
||||
nsDialog.cpp \
|
||||
nsWidgetFactory.cpp \
|
||||
nsWindow.cpp \
|
||||
nsXtEventHandler.cpp \
|
||||
nsXtManageWidget.cpp
|
||||
|
||||
CPP_OBJS= \
|
||||
./$(OBJDIR)/nsPopUpMenu.o \
|
||||
./$(OBJDIR)/nsWidgetSupport.o \
|
||||
./$(OBJDIR)/nsComboBox.o \
|
||||
./$(OBJDIR)/nsFileWidget.o \
|
||||
./$(OBJDIR)/nsTextHelper.o \
|
||||
@ -89,15 +73,15 @@ CPP_OBJS= \
|
||||
./$(OBJDIR)/nsToolkit.o \
|
||||
./$(OBJDIR)/nsLabel.o \
|
||||
./$(OBJDIR)/nsDialog.o \
|
||||
./$(OBJDIR)/nsWidgetFactory.o \
|
||||
./$(OBJDIR)/nsWindow.o \
|
||||
./$(OBJDIR)/nsXtEventHandler.o \
|
||||
$(NULL)
|
||||
|
||||
include $(DEPTH)/config/config.mk
|
||||
|
||||
TARGETS = $(LIBRARY)
|
||||
|
||||
MKSHLIB :=
|
||||
|
||||
include $(DEPTH)/config/rules.mk
|
||||
|
||||
|
||||
|
@ -20,7 +20,10 @@
|
||||
#include "nsIAppShell.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
XtAppContext gAppContext;
|
||||
extern XtAppContext gAppContext;
|
||||
|
||||
//XtAppContext nsAppShell::gAppContext = NULL;
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
//
|
||||
@ -34,6 +37,7 @@ NS_IMPL_ISUPPORTS(nsAppShell,kIAppShellIID);
|
||||
NS_METHOD nsAppShell::SetDispatchListener(nsDispatchListener* aDispatchListener)
|
||||
{
|
||||
mDispatchListener = aDispatchListener;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -48,6 +52,7 @@ NS_METHOD nsAppShell::Create(int* argc, char ** argv)
|
||||
XtSetLanguageProc(NULL, NULL, NULL);
|
||||
mTopLevel = XtVaAppInitialize(&mAppContext, "nsAppShell", NULL,
|
||||
0, argc, argv, NULL, NULL);
|
||||
// XXX This is BAD -- needs to be fixed
|
||||
gAppContext = mAppContext;
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -46,6 +46,9 @@ class nsAppShell : public nsIAppShell
|
||||
NS_IMETHOD Exit();
|
||||
NS_IMETHOD SetDispatchListener(nsDispatchListener* aDispatchListener);
|
||||
virtual void* GetNativeData(PRUint32 aDataType);
|
||||
|
||||
// Public global
|
||||
//static XtAppContext gAppContext;
|
||||
};
|
||||
|
||||
#endif // nsAppShell_h__
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "nsGfxCIID.h"
|
||||
|
||||
#include "nsXtEventHandler.h"
|
||||
#include "nsAppShell.h"
|
||||
|
||||
#include "X11/Xlib.h"
|
||||
#include "Xm/Xm.h"
|
||||
@ -48,12 +49,12 @@
|
||||
|
||||
Widget gFirstTopLevelWindow = 0; //XXX: REMOVE Kludge should not be needed.
|
||||
|
||||
extern XtAppContext gAppContext;
|
||||
static NS_DEFINE_IID(kIWidgetIID, NS_IWIDGET_IID);
|
||||
|
||||
NS_IMPL_ADDREF(nsWindow)
|
||||
NS_IMPL_RELEASE(nsWindow)
|
||||
|
||||
extern XtAppContext gAppContext;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
//
|
||||
@ -261,6 +262,7 @@ void nsWindow::CreateMainWindow(nsNativeWidget aNativeParent,
|
||||
|
||||
// save the event callback function
|
||||
mEventCallback = aHandleEventFunction;
|
||||
printf("************* CreateMainWindow 0x%x\n", mEventCallback);
|
||||
|
||||
InitDeviceContext(aContext,
|
||||
(Widget) aAppShell->GetNativeData(NS_NATIVE_SHELL));
|
||||
@ -337,6 +339,7 @@ void nsWindow::CreateChildWindow(nsNativeWidget aNativeParent,
|
||||
|
||||
// save the event callback function
|
||||
mEventCallback = aHandleEventFunction;
|
||||
printf("************* CreateChildWindow 0x%x\n", mEventCallback);
|
||||
|
||||
InitDeviceContext(aContext, (Widget)aNativeParent);
|
||||
|
||||
@ -684,6 +687,7 @@ NS_METHOD nsWindow::Resize(PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 a
|
||||
mBounds.height = aHeight;
|
||||
XtVaSetValues(mWidget, XmNx, aX, XmNy, GetYCoord(aY),
|
||||
XmNwidth, aWidth, XmNheight, aHeight, nsnull);
|
||||
printf("After nsWindow::Resize\n");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -726,7 +730,12 @@ NS_METHOD nsWindow::SetFocus(void)
|
||||
//-------------------------------------------------------------------------
|
||||
void nsWindow::SetBounds(const nsRect &aRect)
|
||||
{
|
||||
Resize(mBounds.x, mBounds.y, mBounds.width, mBounds.height, PR_TRUE);
|
||||
mBounds.x = aRect.x;
|
||||
mBounds.y = aRect.y;
|
||||
mBounds.width = aRect.width;
|
||||
mBounds.height = aRect.height;
|
||||
printf("SetBounds\n");
|
||||
//Resize(mBounds.x, mBounds.y, mBounds.width, mBounds.height, PR_TRUE);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
@ -1231,7 +1240,9 @@ NS_IMETHODIMP nsWindow::DispatchEvent(nsGUIEvent* event, nsEventStatus & aStatus
|
||||
|
||||
aStatus = nsEventStatus_eIgnore;
|
||||
if (nsnull != mEventCallback) {
|
||||
printf("Before Dispatch 0x%x\n", mEventCallback);
|
||||
aStatus = (*mEventCallback)(event);
|
||||
printf("After Dispatch\n");
|
||||
}
|
||||
|
||||
// Dispatch to event listener if event was not consumed
|
||||
@ -1514,15 +1525,18 @@ void nsWindow_Refresh_Callback(XtPointer call_data)
|
||||
|
||||
widgetWindow->SetBounds(bounds);
|
||||
widgetWindow->OnResize(event);
|
||||
|
||||
printf("nsWindow_ResetResize_Callback 1\n");
|
||||
nsPaintEvent pevent;
|
||||
pevent.message = NS_PAINT;
|
||||
pevent.widget = widgetWindow;
|
||||
pevent.time = 0;
|
||||
pevent.rect = (nsRect *)&bounds;
|
||||
printf("nsWindow_ResetResize_Callback 2\n");
|
||||
widgetWindow->OnPaint(pevent);
|
||||
printf("nsWindow_ResetResize_Callback 3 0x%x\n", gAppContext);
|
||||
|
||||
XtAppAddTimeOut(gAppContext, 50, (XtTimerCallbackProc)nsWindow_ResetResize_Callback, widgetWindow);
|
||||
printf("nsWindow_ResetResize_Callback 4\n");
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -32,8 +32,6 @@
|
||||
|
||||
#define DBG 0
|
||||
|
||||
extern XtAppContext gAppContext;
|
||||
|
||||
struct nsKeyConverter {
|
||||
int vkCode; // Platform independent key code
|
||||
XID keysym; // X keysym key code
|
||||
|
@ -15,9 +15,38 @@
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
# Reserved.
|
||||
|
||||
DEPTH = ../../..
|
||||
|
||||
include manifest.mn
|
||||
|
||||
include $(DEPTH)/config/config.mk
|
||||
|
||||
LIBRARY_NAME = raptorbasewidget_s
|
||||
|
||||
#LCFLAGS=-D_IMPL_NS_WIDGET
|
||||
|
||||
ifeq ($(OS_TARGET),Rhapsody)
|
||||
INCLUDES += -I$(PUBLIC)/xpcom -I$(PUBLIC)/raptor -I../rhapsody
|
||||
else
|
||||
INCLUDES += -I../public -I$(PUBLIC)/xpcom -I$(PUBLIC)/raptor -I../motif -I.
|
||||
endif
|
||||
|
||||
|
||||
CPPSRCS=nsBaseWidget.cpp \
|
||||
nsMenuButton.cpp \
|
||||
nsToolbarItemHolder.cpp \
|
||||
nsToolbarManager.cpp \
|
||||
nsImageButton.cpp \
|
||||
nsToolbar.cpp \
|
||||
$(NULL)
|
||||
|
||||
MODULE=raptor
|
||||
|
||||
REQUIRES=util img xpcom raptor netlib
|
||||
|
||||
TARGETS = $(LIBRARY)
|
||||
|
||||
|
||||
MKSHLIB :=
|
||||
|
||||
include $(DEPTH)/config/rules.mk
|
||||
|
@ -50,10 +50,12 @@ const PRInt32 kAlignJustText = 0;
|
||||
const PRInt32 kAlignJustImage = 1;
|
||||
const PRInt32 kAlignBoth = 2;
|
||||
|
||||
|
||||
//---------------------------------------------------------------
|
||||
static nsEventStatus PR_CALLBACK
|
||||
HandleImageButtonEvent(nsGUIEvent *aEvent)
|
||||
{
|
||||
printf("HandleImageButtonEvent\n");
|
||||
nsEventStatus result = nsEventStatus_eIgnore;
|
||||
nsIImageButton * button;
|
||||
if (NS_OK == aEvent->widget->QueryInterface(kCIImageButtonIID,(void**)&button)) {
|
||||
@ -139,8 +141,9 @@ NS_METHOD nsImageButton::Create(nsIWidget *aParent,
|
||||
nsIToolkit *aToolkit,
|
||||
nsWidgetInitData *aInitData)
|
||||
{
|
||||
printf("nsImageButton::Create 0x%x 0x%x\n", aHandleEventFunction, HandleImageButtonEvent);
|
||||
return ChildWindow::Create(aParent, aRect,
|
||||
nsnull != aHandleEventFunction ? aHandleEventFunction:HandleImageButtonEvent,
|
||||
nsnull != aHandleEventFunction ? aHandleEventFunction: HandleImageButtonEvent,
|
||||
aContext, aAppShell, aToolkit, aInitData);
|
||||
}
|
||||
|
||||
@ -558,14 +561,18 @@ nsEventStatus nsImageButton::HandleEvent(nsGUIEvent *aEvent)
|
||||
rect.y = ((nsPaintEvent *)aEvent)->rect->y;
|
||||
rect.width = ((nsPaintEvent *)aEvent)->rect->width;
|
||||
rect.height = ((nsPaintEvent *)aEvent)->rect->height;
|
||||
|
||||
printf("---> 1\n");
|
||||
aEvent->widget->GetBounds(rect);
|
||||
rect.x = 0;
|
||||
rect.y = 0;
|
||||
printf("---> 1 %x\n", ctx);
|
||||
ds = ctx->CreateDrawingSurface(&rect);
|
||||
printf("---> 1\n");
|
||||
if (ds == nsnull) {
|
||||
printf("---> 1\n");
|
||||
return nsEventStatus_eConsumeNoDefault;
|
||||
}
|
||||
printf("---> 1\n");
|
||||
ctx->SelectOffScreenDrawingSurface(ds);
|
||||
|
||||
es = OnPaint((*((nsPaintEvent*)aEvent)->renderingContext),(*((nsPaintEvent*)aEvent)->rect));
|
@ -195,6 +195,7 @@ NS_METHOD nsToolbarManager::AddTabToManager(nsIToolbar * aToolbar,
|
||||
|
||||
nsIWidget * widget;
|
||||
if (NS_OK == tab->QueryInterface(kIWidgetIID,(void**)&widget)) {
|
||||
printf("Adding tab to Toolbar\n");
|
||||
widget->Create(parent, rt, NULL, NULL);
|
||||
widget->Show(PR_TRUE);
|
||||
|
||||
@ -263,6 +264,7 @@ NS_METHOD nsToolbarManager::AddTabToToolbar(nsIToolbar * aToolbar)
|
||||
// and it can be put into the generic ToolbarItemHolder
|
||||
nsIWidget * widget;
|
||||
if (NS_OK == tab->QueryInterface(kIWidgetIID,(void**)&widget)) {
|
||||
printf("Adding tab to Toolbar\n");
|
||||
widget->Create(parent, rt, NULL, NULL);
|
||||
widget->Show(PR_TRUE);
|
||||
widget->SetClientData((void *)parent);
|
||||
@ -295,13 +297,15 @@ NS_METHOD nsToolbarManager::AddTabToToolbar(nsIToolbar * aToolbar)
|
||||
//--------------------------------------------------------------------
|
||||
NS_METHOD nsToolbarManager::AddToolbar(nsIToolbar* aToolbar)
|
||||
{
|
||||
printf("In AddTabToToolbar\n");
|
||||
mToolbars[mNumToolbars] = aToolbar;
|
||||
mNumToolbars++;
|
||||
|
||||
// XXX should check here to make sure it isn't already added
|
||||
aToolbar->SetToolbarManager(this);
|
||||
|
||||
printf("Before AddTabToToolbar\n");
|
||||
AddTabToToolbar(aToolbar);
|
||||
printf("After AddTabToToolbar\n");
|
||||
NS_ADDREF(aToolbar);
|
||||
|
||||
return NS_OK;
|
Loading…
Reference in New Issue
Block a user