169e62e48SStephan Aßmus /* 24c587adeSStephan Aßmus * Copyright 2008 Ralf Schülke, ralf.schuelke@googlemail.com. 34c587adeSStephan Aßmus * Copyright 2010 Adam Smith <adamd.smith@utoronto.ca> 4c6b0a589SJohn Scipione * Copyright 2014 Haiku, Inc. All rights reserved. 5c6b0a589SJohn Scipione * 6c6b0a589SJohn Scipione * Distributed under the terms of the MIT License. 7c6b0a589SJohn Scipione * 8c6b0a589SJohn Scipione * Authors: 9*fdc05529SJohn Scipione * Ralf Schülke, ralf.schuelke@googlemail.com 10c6b0a589SJohn Scipione * John Scipione, jscipione@gmail.com 11*fdc05529SJohn Scipione * Adam Smith, adamd.smith@utoronto.ca 1269e62e48SStephan Aßmus */ 1369e62e48SStephan Aßmus #ifndef PAIRS_VIEW_H 1469e62e48SStephan Aßmus #define PAIRS_VIEW_H 1569e62e48SStephan Aßmus 1669e62e48SStephan Aßmus 1797e1b053SJohn Scipione #include <ObjectList.h> 1869e62e48SStephan Aßmus #include <View.h> 190eb592d7SAxel Dörfler 200eb592d7SAxel Dörfler 2197e1b053SJohn Scipione const uint8 kSmallIconSize = 32; 2297e1b053SJohn Scipione const uint8 kMediumIconSize = 64; 2397e1b053SJohn Scipione const uint8 kLargeIconSize = 128; 2497e1b053SJohn Scipione 2597e1b053SJohn Scipione const uint32 kMsgCardButton = 'card'; 2697e1b053SJohn Scipione 2797e1b053SJohn Scipione 2897e1b053SJohn Scipione class BBitmap; 2997e1b053SJohn Scipione class PairsButton; 3097e1b053SJohn Scipione 3169e62e48SStephan Aßmus 3269e62e48SStephan Aßmus class PairsView : public BView { 3369e62e48SStephan Aßmus public: 3469e62e48SStephan Aßmus PairsView(BRect frame, const char* name, 3597e1b053SJohn Scipione uint8 rows, uint8 cols, uint8 iconSize); 3669e62e48SStephan Aßmus 3769e62e48SStephan Aßmus virtual ~PairsView(); 3869e62e48SStephan Aßmus virtual void AttachedToWindow(); 3969e62e48SStephan Aßmus virtual void Draw(BRect updateRect); 4097e1b053SJohn Scipione virtual void FrameResized(float newWidth, float newHeight); 4197e1b053SJohn Scipione 4269e62e48SStephan Aßmus virtual void CreateGameBoard(); 4369e62e48SStephan Aßmus Rows()4497e1b053SJohn Scipione int32 Rows() const { return fRows; }; Cols()4597e1b053SJohn Scipione int32 Cols() const { return fCols; }; PairsButtonList()4697e1b053SJohn Scipione BObjectList<PairsButton>* PairsButtonList() const 4797e1b053SJohn Scipione { return fPairsButtonList; }; 484c587adeSStephan Aßmus 4997e1b053SJohn Scipione int32 GetIconPosition(int32 index); 5097e1b053SJohn Scipione IconSize()5197e1b053SJohn Scipione int32 IconSize() const { return fIconSize; }; SetIconSize(int32 size)5297e1b053SJohn Scipione void SetIconSize(int32 size) { fIconSize = size; }; 5397e1b053SJohn Scipione Spacing()5497e1b053SJohn Scipione int32 Spacing() const { return fIconSize / 6; }; 5569e62e48SStephan Aßmus 5669e62e48SStephan Aßmus private: 5797e1b053SJohn Scipione void _GenerateCardPositions(); 58cb2afe5cSStephan Aßmus void _ReadRandomIcons(); 5997e1b053SJohn Scipione void _SetPairsBoard(); 6097e1b053SJohn Scipione void _SetPositions(); 6169e62e48SStephan Aßmus 6297e1b053SJohn Scipione uint8 fRows; 6397e1b053SJohn Scipione uint8 fCols; 6497e1b053SJohn Scipione uint8 fIconSize; 6597e1b053SJohn Scipione int32 fButtonsCount; 6697e1b053SJohn Scipione int32 fCardsCount; 6797e1b053SJohn Scipione BObjectList<PairsButton>* fPairsButtonList; 6897e1b053SJohn Scipione BObjectList<BBitmap>* fSmallBitmapsList; 6997e1b053SJohn Scipione BObjectList<BBitmap>* fMediumBitmapsList; 7097e1b053SJohn Scipione BObjectList<BBitmap>* fLargeBitmapsList; 7197e1b053SJohn Scipione int32* fRandomPosition; 7297e1b053SJohn Scipione int32* fPositionX; 7397e1b053SJohn Scipione int32* fPositionY; 7469e62e48SStephan Aßmus }; 7569e62e48SStephan Aßmus 7669e62e48SStephan Aßmus 7769e62e48SStephan Aßmus #endif // PAIRS_VIEW_H 78