mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-06-04 12:00:41 +00:00
* Headers/Additions/GNUstepGUI/GSTheme.h: Added methods
to support adding menus and processing commands from windows, if appropriate. * Headers/Additions/GNUstepGUI/GSWindowDecorationView.h: Added new methods for menu and toolbar flags. * Headers/AppKit/NSInterfaceStyle.h: Added new interface style. * Source/GNUmakefile: Added header. * Source/GSStandardWindowDecorationView.m: Change include to include header in new location. * Source/GSThemeMenu.m: Default theme implementation for Menus. * Source/GSWindowDecorationView.m: Add the setHasMenu:/setHasToolbar: flags. * Source/NSWindow.m: Use the theme to set the menu instead of setting it directly. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29271 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
5736f119e9
commit
dcea95cb77
9 changed files with 260 additions and 33 deletions
118
Headers/Additions/GNUstepGUI/GSWindowDecorationView.h
Normal file
118
Headers/Additions/GNUstepGUI/GSWindowDecorationView.h
Normal file
|
@ -0,0 +1,118 @@
|
|||
/** <title>GSWindowDecorationView</title>
|
||||
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
|
||||
Author: Alexander Malmberg <alexander@malmberg.org>
|
||||
Date: 2004-03-24
|
||||
|
||||
This file is part of the GNUstep GUI Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef _GNUstep_H_GSWindowDecorationView
|
||||
#define _GNUstep_H_GSWindowDecorationView
|
||||
|
||||
#include <Foundation/NSGeometry.h>
|
||||
#include <AppKit/NSView.h>
|
||||
|
||||
@class NSWindow;
|
||||
|
||||
// These are implemented as class methods on GSWindowDecorationView
|
||||
@protocol GSWindowDecorator
|
||||
- (id) newWindowDecorationViewWithFrame: (NSRect)frame
|
||||
window: (NSWindow *)window;
|
||||
- (NSRect) contentRectForFrameRect: (NSRect)aRect
|
||||
styleMask: (unsigned int)aStyle;
|
||||
- (NSRect) frameRectForContentRect: (NSRect)aRect
|
||||
styleMask: (unsigned int)aStyle;
|
||||
- (float) minFrameWidthWithTitle: (NSString *)aTitle
|
||||
styleMask: (unsigned int)aStyle;
|
||||
@end
|
||||
|
||||
|
||||
/*
|
||||
Abstract superclass for the top-level view in each window. This view is
|
||||
responsible for managing window decorations. Concrete subclasses may do
|
||||
this, either directly, or indirectly (by using the backend).
|
||||
*/
|
||||
@interface GSWindowDecorationView : NSView
|
||||
{
|
||||
NSWindow *window; /* not retained */
|
||||
int windowNumber;
|
||||
NSRect contentRect;
|
||||
int inputState;
|
||||
BOOL documentEdited;
|
||||
BOOL hasMenu;
|
||||
BOOL hasToolbar;
|
||||
}
|
||||
+ (id<GSWindowDecorator>) windowDecorator;
|
||||
|
||||
- (id) initWithFrame: (NSRect)frame window: (NSWindow *)w;
|
||||
|
||||
- (NSRect) contentRectForFrameRect: (NSRect)aRect
|
||||
styleMask: (unsigned int)aStyle;
|
||||
- (NSRect) frameRectForContentRect: (NSRect)aRect
|
||||
styleMask: (unsigned int)aStyle;
|
||||
|
||||
- (void) changeWindowHeight: (float)difference;
|
||||
|
||||
- (void) setBackgroundColor: (NSColor *)color;
|
||||
- (void) setContentView: (NSView *)contentView;
|
||||
- (void) setDocumentEdited: (BOOL)flag;
|
||||
- (void) setInputState: (int)state;
|
||||
- (void) setTitle: (NSString *)title;
|
||||
|
||||
/*
|
||||
Called when the backend window is created or destroyed. When it's destroyed,
|
||||
windowNumber will be 0.
|
||||
*/
|
||||
- (void) setWindowNumber: (int)windowNumber;
|
||||
|
||||
// Flags controlling if elements are present
|
||||
- (void) setHasMenu: (BOOL) flag;
|
||||
- (void) setHasToolbar: (BOOL) flag;
|
||||
@end
|
||||
|
||||
|
||||
/* Manage window decorations by using the backend functions. This only works
|
||||
* on backends that can handle window decorations.
|
||||
*/
|
||||
@interface GSBackendWindowDecorationView : GSWindowDecorationView
|
||||
@end
|
||||
|
||||
|
||||
/*
|
||||
Standard OPENSTEP-ish window decorations.
|
||||
*/
|
||||
@class NSButton;
|
||||
|
||||
@interface GSStandardWindowDecorationView : GSWindowDecorationView
|
||||
{
|
||||
BOOL hasTitleBar, hasResizeBar, hasCloseButton, hasMiniaturizeButton;
|
||||
BOOL isTitled; //, hasToolbar, hasMenu;
|
||||
NSRect titleBarRect;
|
||||
NSRect resizeBarRect;
|
||||
NSRect closeButtonRect;
|
||||
NSRect miniaturizeButtonRect;
|
||||
|
||||
NSButton *closeButton, *miniaturizeButton;
|
||||
}
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue