Source Code (Use browser search to find items of interest.)

Class Index

klyx'MyApp (./klyx/src/klyx.h:134)

class MyApp:public KApplication {
public:
  MyApp( int &argc, char **argv, const QCString& rAppName );
  virtual bool x11EventFilter( XEvent * );
};



klyx'MyApp::MyApp() (./klyx/src/klyx.C:267)

MyApp::MyApp(int &argc, char **argv , const QCString& rAppName):
  KApplication(argc, argv, rAppName){
    QWidget* tmp = new QWidget;
    gs_communication_window = tmp->winId();

    qt_display = tmp->x11Display();

    // ensure that a fork()/exec() pair will not confuse X
    fcntl(ConnectionNumber(qt_xdisplay()), F_SETFD, 1);
    
    // find out what is the default character set (iso font norm)
    QString chs = QFont::encodingName( QFont::charSetForLocale() );
    if (chs.left(3) == "iso" || chs.left(4) == "koi8")
       DEFCHSET_VAR = chs;
    if (chs.left(8) == "iso8859-") {
       char buf[32];
       sprintf(buf, "latin%c", chs[8]);
       DEFENCODING_VAR = buf;
    }

    // now try to find out what language we are using and set certain
    // params accordingly
    DEFLANG_VAR = KGlobal::locale()->language();

    // find language name to language code
    for (int i = 0; tex_babel[i].name[0]; ++i) {
	if (DEFLANG_VAR == tex_babel[i].code) {
		DEFLANGUAGE_VAR = tex_babel[i].name;
		break;
	}
    }

	printf("Defchset: %s, defencoding: %s, deflang: %s/%s\n",
		DEFCHSET, DEFENCODING, DEFLANG, DEFLANGUAGE);
}


klyx'MyApp::x11EventFilter() (./klyx/src/klyx.C:303)

bool MyApp::x11EventFilter( XEvent * ev){
  if (ev->type == KeyPress){
    stored_key_event = *ev;
    XKeyEvent *keyevent = &ev->xkey;
    XComposeStatus compose_status={NULL,0};
    KeySym keysym_return;
    char s_r[10];
    int num_bytes;
    num_bytes = XLookupString(keyevent,
			      s_r,
			      10,
			      &keysym_return,
			      &compose_status);
    // do some tricky stuff because LyX wants to handle dead-keys manually
    // although Qt would do that already for us. 
    if (focus_canvas && focus_canvas->hasFocus() && 
	focus_canvas->view &&
	(false ||
#ifdef   XK_dead_grave
	 keysym_return == XK_dead_grave ||
#endif
#ifdef	 XK_dead_acute
	 keysym_return == XK_dead_acute ||
#endif
#ifdef	 XK_dead_circumflex
	 keysym_return == XK_dead_circumflex ||
#endif
#ifdef	 XK_dead_tilde
	 keysym_return == XK_dead_tilde ||
#endif
#ifdef	 XK_dead_macron
	 keysym_return == XK_dead_macron ||
#endif
#ifdef	 XK_dead_breve
	 keysym_return == XK_dead_breve ||
#endif
#ifdef	 XK_dead_abovedot
	 keysym_return == XK_dead_abovedot ||
#endif
#ifdef	 XK_dead_diaeresis
	 keysym_return == XK_dead_diaeresis ||
#endif
#ifdef	 XK_dead_abovering
	 keysym_return == XK_dead_abovering ||
#endif
#ifdef	 XK_dead_doubleacute
	 keysym_return == XK_dead_doubleacute ||
#endif
#ifdef	 XK_dead_caron
	 keysym_return == XK_dead_caron ||
#endif
#ifdef	 XK_dead_cedilla
	 keysym_return == XK_dead_cedilla ||
#endif
#ifdef	 XK_dead_ogonek
	 keysym_return == XK_dead_ogonek ||
#endif
#ifdef	 XK_dead_iota 
	 keysym_return == XK_dead_iota  ||
#endif
#ifdef	 XK_dead_voiced_sound
	 keysym_return == XK_dead_voiced_sound ||
#endif
#ifdef	 XK_dead_semivoiced_sound
	 keysym_return == XK_dead_semivoiced_sound ||
#endif
#ifdef	 XK_dead_belowdot             
	 keysym_return == XK_dead_belowdot ||
#endif
	 false)){
      stored_key_event.xkey.serial = 0;
	// see comment in K_Canvas::keyPressEvent
      focus_canvas->view->kKeyPress(&stored_key_event);
       return TRUE;
    }
  }
  else if (ev->type == ClientMessage 
	   && ev->xany.window == gs_communication_window){
    GhostscriptMsg(ev);
    return TRUE;
    
  }
  return KApplication::x11EventFilter(ev);
}



// Local Variables:
// mode: C++
// c-file-style: "Stroustrup"
// End: