root/src/tests/kits/interface/bshelf/ShelfInspector/InfoWindow.h
// InfoWindow.h
// Generated by Interface Elements (Window v2.3) on Feb 23 2004
// This is a user written class and will not be overwritten.

#ifndef _INFOWINDOW_H_
#define _INFOWINDOW_H_

#include "IEWindow.h"
#include "InfoWindowDefs.h"
#include "PopUpMenuDefs.h"
#include "TPreferences.h"

extern const char *XCONTAINER_APP;

enum 
{
        CMD_UPDATE_CONTAINER_ITEM = 'updC',     
        CMD_UNLOAD_LIBRARY                              = 'unld',
        CMD_IMPORT_REPLICANT                    = 'dupr',
        CMD_TICK                                                                        = 'tick',       
};


class InfoWindow : public IEWindow
{
        public:
                                                                        InfoWindow(void);
                                                                        ~InfoWindow(void);

                virtual void  MessageReceived(BMessage *message);
                virtual bool    QuitRequested();
                virtual void  MenusBeginning();

                                                void  GetPrefs();
                                          void  SetPrefs();
                
        private:
                        // These are the interesting functions showing how you can 
                        // interact via BMessages with a Shelf/Container view
                        BMessenger      MessengerForTarget(type_code w) const;
                        int32                           GetReplicantAt(int32 index) const;
                        status_t                GetReplicantName(int32 uid, BMessage *result) const;
                        status_t                DeleteReplicant(int32 uid);
                        status_t                ImportReplicant(int32 uid);
                
                        bool                            IsReplicantLoaded(int32 uid) const;
                
                        void                            UpdateLists(bool make_empty);
                        void                            EmptyLists();

                        BMessenger                      fTarget;
                        BMessageRunner  fTickToken;

                        BPoint                                  fImportLoc;

                        BMessage                *ReadMessageFromResource(const char *resName);
                        void                            CreateViews();
                        BMenuField  *fMenuField;
                        BBox                            *fMainBox;
                        
                        BListView               *fReplicantList;                        
                        BListView               *fLibraryList;
                        
                        BButton                 *fDeleteRep;
                        BButton                 *fCopyRep;
                        BButton                 *fUnloadLib;
                                
                        TPreferences    *fPrefs;
};

#endif