示例#1
0
IGraphicsCarbon::~IGraphicsCarbon()
{
  if (mTextEntryView)
  {
    RemoveEventHandler(mTextEntryHandler);
    mTextEntryHandler = 0;

    #if USE_MLTE
    TXNFocus(mTextEntryView, false);
    TXNClear(mTextEntryView);
    TXNDeleteObject(mTextEntryView);
    #else
    HIViewRemoveFromSuperview(mTextEntryView);
    #endif

    mTextEntryView = 0;
    mEdControl = 0;
    mEdParam = 0;
  }

  RemoveEventLoopTimer(mTimer);
  RemoveEventHandler(mControlHandler);
  RemoveEventHandler(mWindowHandler);
  mTimer = 0;
  mView = 0;
//  DisposeRgn(mRgn);
}
示例#2
0
void MacWebWidget::hideEvent ( QHideEvent * event )
{
	QWidget::hideEvent(event);
	if ( m_hiWebView && m_container)  {
		HIViewRemoveFromSuperview( m_hiWebView );
		HIViewSetVisible( m_hiWebView, false );
	}
}
示例#3
0
void IGraphicsCarbon::EndUserInput(bool commit)
{
  RemoveEventHandler(mTextEntryHandler);
  mTextEntryHandler = 0;

  if (commit)
  {
    CFStringRef str;
    if (GetControlData(mTextEntryView, kControlEditTextPart, kControlEditTextCFStringTag, sizeof(str), &str, NULL) == noErr)
    {
      char txt[MAX_PARAM_LEN];
      CFStringGetCString(str, txt, MAX_PARAM_LEN, kCFStringEncodingUTF8);
      CFRelease(str);

      if (mEdParam)
        mGraphicsMac->SetFromStringAfterPrompt(mEdControl, mEdParam, txt);
      else
        mEdControl->TextFromTextEntry(txt);
    }
  }

  HIViewSetVisible(mTextEntryView, false);
  HIViewRemoveFromSuperview(mTextEntryView);

  if (mIsComposited)
  {
    //IRECT* pR = mEdControl->GetRECT();
    //HIViewSetNeedsDisplayInRect(mView, &CGRectMake(pR->L, pR->T, pR->W(), pR->H()), true);
    HIViewSetNeedsDisplay(mView, true);
  }
  else
  {
    if (mEdControl) 
    {
      mEdControl->SetDirty(false);
      mEdControl->Redraw();
    }
  }
  
  SetThemeCursor(kThemeArrowCursor);
  SetUserFocusWindow(kUserFocusAuto);

  mTextEntryView = 0;
  mEdControl = 0;
  mEdParam = 0;
}