From 6ddaa74f65e48ff944fe67e96f0ffec5837e99cc Mon Sep 17 00:00:00 2001 From: "pierre%netscape.com" Date: Tue, 15 Dec 1998 03:00:25 +0000 Subject: [PATCH] First Checked In. git-svn-id: svn://10.0.0.236/trunk@16396 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/widget/src/mac/nsDialog.cpp | 89 +++++++++++++++++++++++ mozilla/widget/src/mac/nsDialog.h | 50 +++++++++++++ mozilla/widget/src/mac/nsLabel.cpp | 105 ++++++++++++++++++++++++++++ mozilla/widget/src/mac/nsLabel.h | 51 ++++++++++++++ 4 files changed, 295 insertions(+) create mode 100644 mozilla/widget/src/mac/nsDialog.cpp create mode 100644 mozilla/widget/src/mac/nsDialog.h create mode 100644 mozilla/widget/src/mac/nsLabel.cpp create mode 100644 mozilla/widget/src/mac/nsLabel.h diff --git a/mozilla/widget/src/mac/nsDialog.cpp b/mozilla/widget/src/mac/nsDialog.cpp new file mode 100644 index 00000000000..1a0f6e0862c --- /dev/null +++ b/mozilla/widget/src/mac/nsDialog.cpp @@ -0,0 +1,89 @@ +/* -*- 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. + */ + +#include "nsDialog.h" + +NS_IMPL_ADDREF(nsDialog); +NS_IMPL_RELEASE(nsDialog); + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +nsDialog::nsDialog() : nsMacWindow(), nsIDialog() +{ + NS_INIT_REFCNT(); + strcpy(gInstanceClassName, "nsDialog"); + + mIsDialog = PR_TRUE; +} + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +nsDialog::~nsDialog() +{ +} + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +nsresult nsDialog::QueryInterface(const nsIID& aIID, void** aInstancePtr) +{ + if (NULL == aInstancePtr) { + return NS_ERROR_NULL_POINTER; + } + + static NS_DEFINE_IID(kIDialog, NS_IDIALOG_IID); + if (aIID.Equals(kIDialog)) { + *aInstancePtr = (void*) ((nsIDialog*)this); + AddRef(); + return NS_OK; + } + + return nsMacWindow::QueryInterface(aIID,aInstancePtr); +} + +#pragma mark - +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +NS_METHOD nsDialog::SetLabel(const nsString& aText) +{ + return SetTitle(aText); +} + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +NS_METHOD nsDialog::GetLabel(nsString& aBuffer) +{ + Str255 title; + ::GetWTitle(mWindowPtr, title); + if (title[0] >= sizeof(title) - 1) + title[0] = sizeof(title) - 1; + title[title[0] + 1] = '\0'; + + aBuffer = (char*)&title[1]; + return NS_OK; +} + diff --git a/mozilla/widget/src/mac/nsDialog.h b/mozilla/widget/src/mac/nsDialog.h new file mode 100644 index 00000000000..8e6600d37bf --- /dev/null +++ b/mozilla/widget/src/mac/nsDialog.h @@ -0,0 +1,50 @@ +/* -*- 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. + */ +#ifndef Dialog_h__ +#define Dialog_h__ + +#include "nsMacWindow.h" +#include "nsIDialog.h" + + +//------------------------------------------------------------------------- +// +// nsDialog +// +//------------------------------------------------------------------------- + +class nsDialog : public nsMacWindow, public nsIDialog +{ + +public: + nsDialog(); + virtual ~nsDialog(); + + // nsISupports + NS_IMETHOD_(nsrefcnt) AddRef(); + NS_IMETHOD_(nsrefcnt) Release(); + NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr); + + // nsIDialog part + NS_IMETHOD SetLabel(const nsString& aText); + NS_IMETHOD GetLabel(nsString& aBuffer); + +}; + + +#endif // Dialog_h__ diff --git a/mozilla/widget/src/mac/nsLabel.cpp b/mozilla/widget/src/mac/nsLabel.cpp new file mode 100644 index 00000000000..a6b8ca0ddd7 --- /dev/null +++ b/mozilla/widget/src/mac/nsLabel.cpp @@ -0,0 +1,105 @@ +/* -*- 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. + */ + +#include "nsLabel.h" + +NS_IMPL_ADDREF(nsLabel); +NS_IMPL_RELEASE(nsLabel); + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +nsLabel::nsLabel() : nsTextWidget(), nsILabel() +{ + NS_INIT_REFCNT(); + strcpy(gInstanceClassName, "nsLabel"); +} + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +nsLabel::~nsLabel() +{ +} + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +nsresult nsLabel::QueryInterface(const nsIID& aIID, void** aInstancePtr) +{ + if (NULL == aInstancePtr) { + return NS_ERROR_NULL_POINTER; + } + + static NS_DEFINE_IID(kILabel, NS_ILABEL_IID); + if (aIID.Equals(kILabel)) { + *aInstancePtr = (void*) ((nsILabel*)this); + AddRef(); + return NS_OK; + } + + return nsTextWidget::QueryInterface(aIID,aInstancePtr); +} + +#pragma mark - +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +NS_METHOD nsLabel::SetLabel(const nsString& aText) +{ + PRUint32 displayedSize; + return SetText(aText, displayedSize); +} + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +NS_METHOD nsLabel::GetLabel(nsString& aBuffer) +{ + PRUint32 maxSize = -1; + PRUint32 displayedSize; + return GetText(aBuffer, maxSize, displayedSize); +} + +//------------------------------------------------------------------------- +// +// +//------------------------------------------------------------------------- +NS_METHOD nsLabel::SetAlignment(nsLabelAlignment aAlignment) +{ + if (!mControl) + return NS_ERROR_NOT_INITIALIZED; + + SInt16 just; + switch (aAlignment) + { + case eAlign_Right: just = teFlushRight; break; + case eAlign_Left: just = teFlushLeft; break; + case eAlign_Center: just = teCenter; break; + } + ControlFontStyleRec fontStyleRec; + fontStyleRec.flags = (kControlUseJustMask); + fontStyleRec.just = just; + ::SetControlFontStyle(mControl, &fontStyleRec); +} + diff --git a/mozilla/widget/src/mac/nsLabel.h b/mozilla/widget/src/mac/nsLabel.h new file mode 100644 index 00000000000..8e4bcbfff01 --- /dev/null +++ b/mozilla/widget/src/mac/nsLabel.h @@ -0,0 +1,51 @@ +/* -*- 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. + */ +#ifndef Label_h__ +#define Label_h__ + +#include "nsTextWidget.h" +#include "nsILabel.h" + + +//------------------------------------------------------------------------- +// +// nsLabel +// +//------------------------------------------------------------------------- + +class nsLabel : public nsTextWidget, public nsILabel +{ + +public: + nsLabel(); + virtual ~nsLabel(); + + // nsISupports + NS_IMETHOD_(nsrefcnt) AddRef(); + NS_IMETHOD_(nsrefcnt) Release(); + NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr); + + // nsILabel part + NS_IMETHOD SetLabel(const nsString& aText); + NS_IMETHOD GetLabel(nsString& aBuffer); + NS_IMETHOD SetAlignment(nsLabelAlignment aAlignment); + +}; + + +#endif // Label_h__