summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeenz <geenz@geenzo.com>2013-04-01 08:15:12 -0400
committerGeenz <geenz@geenzo.com>2013-04-01 08:15:12 -0400
commit2656b1f405dcf3b67d644bf47b02a64886ef2ca4 (patch)
tree9e4037a1a6bd0ecacc75fbe2de9eb6c0785a5f1b
parent80a79e5d7b4f37f862b312e848b1d1e7f85b0fa9 (diff)
First pass at adding a viable replacement for TSM's old UseInputWindow method (which is now deprecated with seemingly no Cocoa replacement).
-rw-r--r--indra/llwindow/llappdelegate-objc.h6
-rw-r--r--indra/llwindow/llopenglview-objc.h12
-rw-r--r--indra/llwindow/llopenglview-objc.mm22
-rw-r--r--indra/llwindow/llwindowmacosx-objc.h2
-rw-r--r--indra/llwindow/llwindowmacosx-objc.mm10
-rw-r--r--indra/llwindow/llwindowmacosx.cpp14
-rw-r--r--indra/newview/SecondLife.nibbin7403 -> 12997 bytes
-rw-r--r--indra/newview/SecondLife.xib381
-rw-r--r--indra/newview/llappdelegate-objc.mm15
9 files changed, 444 insertions, 18 deletions
diff --git a/indra/llwindow/llappdelegate-objc.h b/indra/llwindow/llappdelegate-objc.h
index 6a4794f3c3..e7f6ecd5fc 100644
--- a/indra/llwindow/llappdelegate-objc.h
+++ b/indra/llwindow/llappdelegate-objc.h
@@ -11,11 +11,15 @@
@interface LLAppDelegate : NSObject <NSApplicationDelegate> {
LLNSWindow *window;
+ NSWindow *inputWindow;
+ LLNonInlineTextView *inputView;
NSTimer *frameTimer;
}
@property (assign) IBOutlet LLNSWindow *window;
+@property (assign) IBOutlet NSWindow *inputWindow;
+@property (assign) IBOutlet LLNonInlineTextView *inputView;
- (void) mainLoop;
-
+- (void) showInputWindow:(bool)show;
@end
diff --git a/indra/llwindow/llopenglview-objc.h b/indra/llwindow/llopenglview-objc.h
index 5f972b1a98..6b21148bb6 100644
--- a/indra/llwindow/llopenglview-objc.h
+++ b/indra/llwindow/llopenglview-objc.h
@@ -12,9 +12,6 @@
#import <CoreFoundation/CFNumber.h>
#include <string>
-// Some nasty shovelling of LLOpenGLView from LLNativeBindings to prevent any C++ <-> Obj-C interop oddities.
-// Redraw callback handling removed (for now) due to being unneeded in the patch that preceeds this addition.
-
@interface LLOpenGLView : NSOpenGLView <NSTextInputClient>
{
std::string mLastDraggedUrl;
@@ -44,6 +41,15 @@
@end
+@interface LLNonInlineTextView : NSTextView
+{
+ LLOpenGLView *glview;
+}
+
+- (void) setGLView:(LLOpenGLView*)view;
+
+@end
+
@interface LLNSWindow : NSWindow
- (NSPoint)convertToScreenFromLocalPoint:(NSPoint)point relativeToView:(NSView *)view;
diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm
index 376d238c90..a6ef35a8eb 100644
--- a/indra/llwindow/llopenglview-objc.mm
+++ b/indra/llwindow/llopenglview-objc.mm
@@ -501,9 +501,25 @@ attributedStringInfo getSegments(NSAttributedString *str)
@end
-// We use a custom NSWindow for our event handling.
-// Why not an NSWindowController you may ask?
-// Answer: this is easier.
+@implementation LLNonInlineTextView
+
+- (void) setGLView:(LLOpenGLView *)view
+{
+ glview = view;
+}
+
+- (void) insertText:(id)insertString
+{
+ [self insertText:insertString replacementRange:NSMakeRange(0, 0)];
+}
+
+- (void) insertText:(id)aString replacementRange:(NSRange)replacementRange
+{
+ [glview insertText:aString replacementRange:replacementRange];
+ [_window orderOut:_window];
+}
+
+@end
@implementation LLNSWindow
diff --git a/indra/llwindow/llwindowmacosx-objc.h b/indra/llwindow/llwindowmacosx-objc.h
index 1d05db14b2..14a0c22d66 100644
--- a/indra/llwindow/llwindowmacosx-objc.h
+++ b/indra/llwindow/llwindowmacosx-objc.h
@@ -90,6 +90,8 @@ void setWindowPos(NSWindowRef window, float* pos);
void closeWindow(NSWindowRef window);
void removeGLView(GLViewRef view);
void makeFirstResponder(NSWindowRef window, GLViewRef view);
+void setupInputWindow(NSWindowRef window, GLViewRef view);
+void showInputWindow(bool show);
// These are all implemented in llwindowmacosx.cpp.
// This is largely for easier interop between Obj-C and C++ (at least in the viewer's case due to the BOOL vs. BOOL conflict)
diff --git a/indra/llwindow/llwindowmacosx-objc.mm b/indra/llwindow/llwindowmacosx-objc.mm
index 43f853bfd1..0eef8c9f83 100644
--- a/indra/llwindow/llwindowmacosx-objc.mm
+++ b/indra/llwindow/llwindowmacosx-objc.mm
@@ -362,6 +362,16 @@ void removeGLView(GLViewRef view)
[(LLOpenGLView*)view release];
}
+void setupInputWindow(NSWindowRef window, GLViewRef glview)
+{
+ [[(LLAppDelegate*)[NSApp delegate] inputView] setGLView:(LLOpenGLView*)glview];
+}
+
+void showInputWindow(bool show)
+{
+ [(LLAppDelegate*)[NSApp delegate] showInputWindow:show];
+}
+
NSWindowRef getMainAppWindow()
{
LLNSWindow *winRef = [(LLAppDelegate*)[[NSApplication sharedApplication] delegate] window];
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 6f66da66a4..2d0f981b3e 100644
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -191,6 +191,8 @@ LLWindowMacOSX::LLWindowMacOSX(LLWindowCallbacks* callbacks,
//start with arrow cursor
initCursors();
setCursor( UI_CURSOR_ARROW );
+
+ allowLanguageTextInput(NULL, FALSE);
}
mCallbacks = callbacks;
@@ -513,18 +515,22 @@ BOOL LLWindowMacOSX::createContext(int x, int y, int width, int height, int bits
// Get the view instead.
mGLView = createOpenGLView(mWindow, mFSAASamples, !disable_vsync);
mContext = getCGLContextObj(mGLView);
+
// Since we just created the context, it needs to be set up.
glNeedsInit = TRUE;
gGLManager.mVRAM = getVramSize(mGLView);
}
-
+
+ // This sets up our view to recieve text from our non-inline text input window.
+ setupInputWindow(mWindow, mGLView);
+
// Hook up the context to a drawable
if(mContext != NULL)
{
- LL_INFOS("Window") << "Setting CGL Context..." << LL_ENDL;
- LL_DEBUGS("Window") << "createContext: setting current context" << LL_ENDL;
+
+
U32 err = CGLSetCurrentContext(mContext);
if (err != kCGLNoError)
{
@@ -1888,6 +1894,8 @@ void LLWindowMacOSX::allowLanguageTextInput(LLPreeditor *preeditor, BOOL b)
return;
}
+ showInputWindow(!b);
+
// Take care of old and new preeditors.
if (preeditor != mPreeditor || !b)
{
diff --git a/indra/newview/SecondLife.nib b/indra/newview/SecondLife.nib
index f55ddaabcd..0b0ff5308b 100644
--- a/indra/newview/SecondLife.nib
+++ b/indra/newview/SecondLife.nib
Binary files differ
diff --git a/indra/newview/SecondLife.xib b/indra/newview/SecondLife.xib
index 7d20b7fd7c..fdfea49c42 100644
--- a/indra/newview/SecondLife.xib
+++ b/indra/newview/SecondLife.xib
@@ -11,9 +11,13 @@
<string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
+ <string>IBNSLayoutConstraint</string>
<string>NSCustomObject</string>
<string>NSMenu</string>
<string>NSMenuItem</string>
+ <string>NSScrollView</string>
+ <string>NSScroller</string>
+ <string>NSTextView</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
</array>
@@ -340,6 +344,202 @@
<int key="NSWindowCollectionBehavior">128</int>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
+ <object class="NSWindowTemplate" id="979091056">
+ <int key="NSWindowStyleMask">31</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{272, 176}, {938, 42}}</string>
+ <int key="NSWTFlags">-1535638528</int>
+ <string key="NSWindowTitle">Window</string>
+ <string key="NSWindowClass">NSPanel</string>
+ <nil key="NSViewClass"/>
+ <nil key="NSUserInterfaceItemIdentifier"/>
+ <object class="NSView" key="NSWindowView" id="1044753903">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="NSScrollView" id="238626476">
+ <reference key="NSNextResponder" ref="1044753903"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="NSClipView" id="871543330">
+ <reference key="NSNextResponder" ref="238626476"/>
+ <int key="NSvFlags">2304</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="NSTextView" id="395788163">
+ <reference key="NSNextResponder" ref="871543330"/>
+ <int key="NSvFlags">2322</int>
+ <set class="NSMutableSet" key="NSDragTypes">
+ <string>Apple HTML pasteboard type</string>
+ <string>Apple PDF pasteboard type</string>
+ <string>Apple PICT pasteboard type</string>
+ <string>Apple PNG pasteboard type</string>
+ <string>Apple URL pasteboard type</string>
+ <string>CorePasteboardFlavorType 0x6D6F6F76</string>
+ <string>NSColor pasteboard type</string>
+ <string>NSFilenamesPboardType</string>
+ <string>NSStringPboardType</string>
+ <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
+ <string>NeXT RTFD pasteboard type</string>
+ <string>NeXT Rich Text Format v1.0 pasteboard type</string>
+ <string>NeXT TIFF v4.0 pasteboard type</string>
+ <string>NeXT font pasteboard type</string>
+ <string>NeXT ruler pasteboard type</string>
+ <string>WebURLsWithTitlesPboardType</string>
+ <string>public.url</string>
+ </set>
+ <string key="NSFrameSize">{938, 42}</string>
+ <reference key="NSSuperview" ref="871543330"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="339833963"/>
+ <string key="NSReuseIdentifierKey">_NS:13</string>
+ <object class="NSTextContainer" key="NSTextContainer" id="648552009">
+ <object class="NSLayoutManager" key="NSLayoutManager">
+ <object class="NSTextStorage" key="NSTextStorage">
+ <object class="NSMutableString" key="NSString">
+ <characters key="NS.bytes"/>
+ </object>
+ <nil key="NSDelegate"/>
+ </object>
+ <array class="NSMutableArray" key="NSTextContainers">
+ <reference ref="648552009"/>
+ </array>
+ <int key="NSLMFlags">166</int>
+ <nil key="NSDelegate"/>
+ </object>
+ <reference key="NSTextView" ref="395788163"/>
+ <double key="NSWidth">938</double>
+ <int key="NSTCFlags">1</int>
+ </object>
+ <object class="NSTextViewSharedData" key="NSSharedData">
+ <int key="NSFlags">67121127</int>
+ <int key="NSTextCheckingTypes">0</int>
+ <nil key="NSMarkedAttributes"/>
+ <object class="NSColor" key="NSBackgroundColor" id="535647664">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <dictionary key="NSSelectedAttributes">
+ <object class="NSColor" key="NSBackgroundColor">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">selectedTextBackgroundColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">selectedTextColor</string>
+ <object class="NSColor" key="NSColor" id="835883401">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MAA</bytes>
+ </object>
+ </object>
+ </dictionary>
+ <reference key="NSInsertionColor" ref="835883401"/>
+ <dictionary key="NSLinkAttributes">
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDEAA</bytes>
+ </object>
+ <object class="NSCursor" key="NSCursor">
+ <string key="NSHotSpot">{8, -8}</string>
+ <int key="NSCursorType">13</int>
+ </object>
+ <integer value="1" key="NSUnderline"/>
+ </dictionary>
+ <nil key="NSDefaultParagraphStyle"/>
+ <nil key="NSTextFinder"/>
+ <int key="NSPreferredTextFinderStyle">1</int>
+ </object>
+ <int key="NSTVFlags">6</int>
+ <string key="NSMaxSize">{939, 10000000}</string>
+ <nil key="NSDelegate"/>
+ </object>
+ </array>
+ <string key="NSFrame">{{1, 1}, {938, 42}}</string>
+ <reference key="NSSuperview" ref="238626476"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="395788163"/>
+ <string key="NSReuseIdentifierKey">_NS:11</string>
+ <reference key="NSDocView" ref="395788163"/>
+ <reference key="NSBGColor" ref="535647664"/>
+ <object class="NSCursor" key="NSCursor">
+ <string key="NSHotSpot">{4, 5}</string>
+ <object class="NSImage" key="NSImage">
+ <int key="NSImageFlags">79691776</int>
+ <array key="NSReps">
+ <array>
+ <integer value="5"/>
+ <object class="NSURL">
+ <nil key="NS.base"/>
+ <string key="NS.relative">file://localhost/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/DVTIbeamCursor.tiff</string>
+ </object>
+ </array>
+ </array>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwAA</bytes>
+ </object>
+ </object>
+ </object>
+ <int key="NScvFlags">4</int>
+ </object>
+ <object class="NSScroller" id="339833963">
+ <reference key="NSNextResponder" ref="238626476"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{923, 1}, {16, 42}}</string>
+ <reference key="NSSuperview" ref="238626476"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView"/>
+ <string key="NSReuseIdentifierKey">_NS:83</string>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
+ <reference key="NSTarget" ref="238626476"/>
+ <string key="NSAction">_doScroller:</string>
+ <double key="NSPercent">0.96666666666666667</double>
+ </object>
+ <object class="NSScroller" id="1067057765">
+ <reference key="NSNextResponder" ref="238626476"/>
+ <int key="NSvFlags">-2147483392</int>
+ <string key="NSFrame">{{-100, -100}, {87, 18}}</string>
+ <reference key="NSSuperview" ref="238626476"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="871543330"/>
+ <string key="NSReuseIdentifierKey">_NS:33</string>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
+ <int key="NSsFlags">1</int>
+ <reference key="NSTarget" ref="238626476"/>
+ <string key="NSAction">_doScroller:</string>
+ <double key="NSCurValue">1</double>
+ <double key="NSPercent">0.94565218687057495</double>
+ </object>
+ </array>
+ <string key="NSFrame">{{-1, -1}, {940, 44}}</string>
+ <reference key="NSSuperview" ref="1044753903"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="1067057765"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <int key="NSsFlags">133138</int>
+ <reference key="NSVScroller" ref="339833963"/>
+ <reference key="NSHScroller" ref="1067057765"/>
+ <reference key="NSContentView" ref="871543330"/>
+ <double key="NSMinMagnification">0.25</double>
+ <double key="NSMaxMagnification">4</double>
+ <double key="NSMagnification">1</double>
+ </object>
+ </array>
+ <string key="NSFrameSize">{938, 42}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="238626476"/>
+ <string key="NSReuseIdentifierKey">_NS:21</string>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {2560, 1440}}</string>
+ <string key="NSMaxSize">{10000000000000, 10000000000000}</string>
+ <bool key="NSWindowIsRestorable">YES</bool>
+ </object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
@@ -471,6 +671,22 @@
</object>
<int key="connectionID">850</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">inputWindow</string>
+ <reference key="source" ref="756173070"/>
+ <reference key="destination" ref="979091056"/>
+ </object>
+ <int key="connectionID">953</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">inputView</string>
+ <reference key="source" ref="756173070"/>
+ <reference key="destination" ref="395788163"/>
+ </object>
+ <int key="connectionID">954</int>
+ </object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@@ -726,6 +942,131 @@
<reference key="object" ref="383018193"/>
<reference key="parent" ref="701759256"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">941</int>
+ <reference key="object" ref="979091056"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="1044753903"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">942</int>
+ <reference key="object" ref="1044753903"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="238626476"/>
+ <object class="IBNSLayoutConstraint" id="721706750">
+ <reference key="firstItem" ref="1044753903"/>
+ <int key="firstAttribute">4</int>
+ <int key="relation">0</int>
+ <reference key="secondItem" ref="238626476"/>
+ <int key="secondAttribute">4</int>
+ <float key="multiplier">1</float>
+ <object class="IBLayoutConstant" key="constant">
+ <double key="value">-1</double>
+ </object>
+ <float key="priority">1000</float>
+ <reference key="containingView" ref="1044753903"/>
+ <int key="scoringType">8</int>
+ <float key="scoringTypeFloat">29</float>
+ <int key="contentType">3</int>
+ </object>
+ <object class="IBNSLayoutConstraint" id="797493936">
+ <reference key="firstItem" ref="1044753903"/>
+ <int key="firstAttribute">6</int>
+ <int key="relation">0</int>
+ <reference key="secondItem" ref="238626476"/>
+ <int key="secondAttribute">6</int>
+ <float key="multiplier">1</float>
+ <object class="IBLayoutConstant" key="constant">
+ <double key="value">-1</double>
+ </object>
+ <float key="priority">1000</float>
+ <reference key="containingView" ref="1044753903"/>
+ <int key="scoringType">8</int>
+ <float key="scoringTypeFloat">29</float>
+ <int key="contentType">3</int>
+ </object>
+ <object class="IBNSLayoutConstraint" id="262904360">
+ <reference key="firstItem" ref="238626476"/>
+ <int key="firstAttribute">3</int>
+ <int key="relation">0</int>
+ <reference key="secondItem" ref="1044753903"/>
+ <int key="secondAttribute">3</int>
+ <float key="multiplier">1</float>
+ <object class="IBLayoutConstant" key="constant">
+ <double key="value">-1</double>
+ </object>
+ <float key="priority">1000</float>
+ <reference key="containingView" ref="1044753903"/>
+ <int key="scoringType">8</int>
+ <float key="scoringTypeFloat">29</float>
+ <int key="contentType">3</int>
+ </object>
+ <object class="IBNSLayoutConstraint" id="609370450">
+ <reference key="firstItem" ref="238626476"/>
+ <int key="firstAttribute">5</int>
+ <int key="relation">0</int>
+ <reference key="secondItem" ref="1044753903"/>
+ <int key="secondAttribute">5</int>
+ <float key="multiplier">1</float>
+ <object class="IBLayoutConstant" key="constant">
+ <double key="value">-1</double>
+ </object>
+ <float key="priority">1000</float>
+ <reference key="containingView" ref="1044753903"/>
+ <int key="scoringType">8</int>
+ <float key="scoringTypeFloat">29</float>
+ <int key="contentType">3</int>
+ </object>
+ </array>
+ <reference key="parent" ref="979091056"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">943</int>
+ <reference key="object" ref="238626476"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="395788163"/>
+ <reference ref="1067057765"/>
+ <reference ref="339833963"/>
+ </array>
+ <reference key="parent" ref="1044753903"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">944</int>
+ <reference key="object" ref="395788163"/>
+ <reference key="parent" ref="238626476"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">945</int>
+ <reference key="object" ref="1067057765"/>
+ <reference key="parent" ref="238626476"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">946</int>
+ <reference key="object" ref="339833963"/>
+ <reference key="parent" ref="238626476"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">949</int>
+ <reference key="object" ref="609370450"/>
+ <reference key="parent" ref="1044753903"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">950</int>
+ <reference key="object" ref="262904360"/>
+ <reference key="parent" ref="1044753903"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">951</int>
+ <reference key="object" ref="797493936"/>
+ <reference key="parent" ref="1044753903"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">952</int>
+ <reference key="object" ref="721706750"/>
+ <reference key="parent" ref="1044753903"/>
+ </object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@@ -770,12 +1111,31 @@
<string key="829.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="841.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="92.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="941.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES" key="941.NSWindowTemplate.visibleAtLaunch"/>
+ <array class="NSMutableArray" key="942.IBNSViewMetadataConstraints">
+ <reference ref="609370450"/>
+ <reference ref="262904360"/>
+ <reference ref="797493936"/>
+ <reference ref="721706750"/>
+ </array>
+ <string key="942.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="NO" key="943.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
+ <string key="943.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="944.CustomClassName">LLNonInlineTextView</string>
+ <string key="944.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="945.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="946.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="949.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="950.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="951.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="952.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
- <int key="maxID">940</int>
+ <int key="maxID">954</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -783,13 +1143,18 @@
<string key="className">LLAppDelegate</string>
<string key="superclassName">NSObject</string>
<dictionary class="NSMutableDictionary" key="outlets">
- <string key="glview">LLOpenGLView</string>
+ <string key="inputView">LLNonInlineTextView</string>
+ <string key="inputWindow">NSWindow</string>
<string key="window">LLNSWindow</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
- <object class="IBToOneOutletInfo" key="glview">
- <string key="name">glview</string>
- <string key="candidateClassName">LLOpenGLView</string>
+ <object class="IBToOneOutletInfo" key="inputView">
+ <string key="name">inputView</string>
+ <string key="candidateClassName">LLNonInlineTextView</string>
+ </object>
+ <object class="IBToOneOutletInfo" key="inputWindow">
+ <string key="name">inputWindow</string>
+ <string key="candidateClassName">NSWindow</string>
</object>
<object class="IBToOneOutletInfo" key="window">
<string key="name">window</string>
@@ -810,11 +1175,11 @@
</object>
</object>
<object class="IBPartialClassDescription">
- <string key="className">LLOpenGLView</string>
- <string key="superclassName">NSOpenGLView</string>
+ <string key="className">LLNonInlineTextView</string>
+ <string key="superclassName">NSTextView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
- <string key="minorKey">./Classes/LLOpenGLView.h</string>
+ <string key="minorKey">./Classes/LLNonInlineTextView.h</string>
</object>
</object>
</array>
diff --git a/indra/newview/llappdelegate-objc.mm b/indra/newview/llappdelegate-objc.mm
index 5fb5087cd8..8da44fcf33 100644
--- a/indra/newview/llappdelegate-objc.mm
+++ b/indra/newview/llappdelegate-objc.mm
@@ -12,6 +12,8 @@
@implementation LLAppDelegate
@synthesize window;
+@synthesize inputWindow;
+@synthesize inputView;
- (void)dealloc
{
@@ -63,4 +65,17 @@
}
}
+- (void) showInputWindow:(bool)show
+{
+ if (show)
+ {
+ NSLog(@"Showing input window.");
+ [inputWindow makeKeyAndOrderFront:inputWindow];
+ } else {
+ NSLog(@"Hiding input window.");
+ [inputWindow orderOut:inputWindow];
+ [window makeKeyAndOrderFront:window];
+ }
+}
+
@end