Ticket #5525: splitView.patch
File splitView.patch, 2.6 KB (added by , 14 years ago) |
---|
-
headers/os/interface/SplitView.h
1 1 /* 2 * Copyright 2006 , Haiku, Inc. All rights reserved.2 * Copyright 2006-2010, Haiku, Inc. All rights reserved. 3 3 * Distributed under the terms of the MIT License. 4 4 */ 5 5 #ifndef _SPLIT_VIEW_H … … 16 16 enum orientation orientation 17 17 = B_HORIZONTAL, 18 18 float spacing = 0.0f); 19 BSplitView(BMessage* from); 19 20 virtual ~BSplitView(); 20 21 21 22 void SetInsets(float left, float top, float right, … … 59 60 virtual void SetLayout(BLayout* layout); 60 61 // overridden to avoid use 61 62 63 virtual status_t Archive(BMessage* into, bool deep = true) const; 64 virtual status_t AllArchived(BMessage* into) const; 65 static BArchivable* Instantiate(BMessage* from); 66 62 67 protected: 63 68 virtual void DrawSplitter(BRect frame, 64 69 const BRect& updateRect, -
src/kits/interface/SplitView.cpp
3 3 * All rights reserved. Distributed under the terms of the MIT License. 4 4 */ 5 5 6 #include <Archivable.h> 6 7 #include <SplitView.h> 7 8 8 9 #include <stdio.h> … … 12 13 13 14 #include "SplitLayout.h" 14 15 16 namespace { 17 const char* kSplitLayoutField = "BSplitView:layout"; 18 } 15 19 20 16 21 BSplitView::BSplitView(enum orientation orientation, float spacing) 17 22 : 18 23 BView(NULL, … … 23 28 } 24 29 25 30 31 BSplitView::BSplitView(BMessage* from) 32 : 33 BView(BUnarchiver::PrepareArchive(from)), 34 fSplitLayout(NULL) 35 { 36 BUnarchiver unarchiver(from); 37 unarchiver.FindObject(kSplitLayoutField, 38 BUnarchiver::B_DONT_ASSUME_OWNERSHIP, fSplitLayout); 39 } 40 41 26 42 BSplitView::~BSplitView() 27 43 { 28 44 } … … 216 232 } 217 233 218 234 235 status_t 236 BSplitView::Archive(BMessage* into, bool deep) const 237 { 238 return BArchiver(into).Finish(BView::Archive(into, deep)); 239 } 240 241 242 status_t 243 BSplitView::AllArchived(BMessage* into) const 244 { 245 BArchiver archiver(into); 246 status_t err = BView::AllArchived(into); 247 248 if (err == B_OK && archiver.IsArchived(fSplitLayout)) 249 return archiver.AddArchivable(kSplitLayoutField, fSplitLayout); 250 251 return B_NAME_NOT_FOUND; 252 } 253 254 255 BArchivable* 256 BSplitView::Instantiate(BMessage* from) 257 { 258 if (validate_instantiation(from, "BSplitView")) 259 return new BSplitView(from); 260 return NULL; 261 } 262 263 219 264 void 220 265 BSplitView::DrawSplitter(BRect frame, const BRect& updateRect, 221 266 enum orientation orientation, bool pressed)