textcontrol.h
上传用户:chn_coc
上传日期:2007-12-20
资源大小:563k
文件大小:2k
源码类别:

P2P编程

开发平台:

Windows_Unix

  1. /*
  2.  *  textcontrol.h
  3.  *  PeerCast
  4.  *
  5.  *  Created by mode7 on Mon Apr 05 2004.
  6.  *  Copyright (c) 2002-2004 peercast.org. All rights reserved.
  7.  *
  8.  */
  9. // ------------------------------------------------
  10. // This program is free software; you can redistribute it and/or modify
  11. // it under the terms of the GNU General Public License as published by
  12. // the Free Software Foundation; either version 2 of the License, or
  13. // (at your option) any later version.
  14. // This program is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. // GNU General Public License for more details.
  18. // ------------------------------------------------
  19. #ifndef _TEXTCONTROL_H
  20. #define _TEXTCONTROL_H
  21. #include <Carbon/Carbon.h>
  22. class TextControl
  23. {
  24. static const int skMaxBufSize = 256; 
  25. public:
  26. explicit TextControl( const int a, const int id )
  27. : mID( )
  28.  ,mStringRef( NULL )
  29. {
  30. mID.signature = a;
  31. mID.id   = id;
  32. }
  33. void setText( WindowRef window, const char* text );
  34. void setText( WindowRef window, CFStringRef text );
  35. const char* getString( WindowRef window, CFStringEncoding encoding )
  36. {
  37. if( CFStringRef stringRef = getStringRef(window) )
  38. {
  39. if( CFStringGetCString( stringRef, mStrBuffer, skMaxBufSize, encoding ) )
  40. {
  41. return mStrBuffer;
  42. }
  43. }
  44. return skNullString; 
  45. }
  46. protected:
  47. CFStringRef getStringRef( WindowRef window );
  48. private:
  49. ControlID   mID;
  50. CFStringRef mStringRef;
  51. char mStrBuffer[skMaxBufSize];
  52. static const char* const skNullString;
  53. };
  54. #endif // _TEXTCONTROL_H