void ScreenManager::loadScreens()
{
	//Create the Game screens
    addScreen(new MainMenu());
	addScreen(new Save());
	addScreen(new Load());
	addScreen(new Game());
    addScreen(new LevelEditor());
	
}
void ScreenManager::loadScreens()
{
	//Create the Game screens
	addScreen(new Splash());
    addScreen(new MainMenu());
	addScreen(new Game());
    addScreen(new LevelEditor());
	addScreen(new LevelSelect());
	addScreen(new GameSettings());
	addScreen(new HighScore());
	addScreen(new Pause());
	addScreen(new Victory());
	addScreen(new Defeat());
}
void QEglFSIntegration::initialize()
{
    qt_egl_device_integration()->platformInit();

    m_display = qt_egl_device_integration()->createDisplay(nativeDisplay());
    if (m_display == EGL_NO_DISPLAY)
        qFatal("Could not open egl display");

    EGLint major, minor;
    if (!eglInitialize(m_display, &major, &minor))
        qFatal("Could not initialize egl display");

    m_inputContext = QPlatformInputContextFactory::create();

    m_vtHandler.reset(new QFbVtHandler);

    if (qt_egl_device_integration()->usesDefaultScreen())
        addScreen(new QEglFSScreen(display()));
    else
        qt_egl_device_integration()->screenInit();

    // Input code may rely on the screens, so do it only after the screen init.
    if (!m_disableInputHandlers)
        createInputHandlers();
}
Beispiel #4
0
bool MainScene::init()
{
	if ( !Layer::init() )
    {
        return false;
    }


	_size = Director::getInstance()->getWinSize();
	_xPosition = 0;
	_xMoved = 0;

	_touchListener = EventListenerTouchOneByOne::create();
	_touchListener->onTouchBegan = CC_CALLBACK_2(MainScene::touchBegan,this);
	_touchListener->onTouchMoved = CC_CALLBACK_2(MainScene::touchMoved, this);
	_touchListener->onTouchEnded = CC_CALLBACK_2(MainScene::touchEnded,this);
	getEventDispatcher()->addEventListenerWithFixedPriority(_touchListener, 100);

	addScreen(1, new MainScreen);
	addScreen(2, new MainScreen);

	_fon = Sprite::create("img/ScreenFon.png");
	_fon->setScaleX(_size.width/_fon->getContentSize().width);
	_fon->setScaleY(_size.height/_fon->getContentSize().height);
	_fon->setPosition(Point(_size.width/2, _size.height/2));
	this->addChild(_fon,0);

	_menu = new MenuView;
	_menu->initialization(this);


	TextFieldTTF * tf = TextFieldTTF::textFieldWithPlaceHolder("click for input",
        "fonts/menuFont.otf",
        26);
	tf->setPosition(Point(300,300));
	this->addChild(tf, 10);
	tf->attachWithIME();

	//this->schedule(schedule_selector(MainScene::update),0.05f);

	return true;
}
Beispiel #5
0
void ServerConfig::init()
{
	switchCorners().clear();
	screens().clear();

	// m_NumSwitchCorners is used as a fixed size array. See Screen::init()
	for (int i = 0; i < NumSwitchCorners; i++)
		switchCorners() << false;

	// There must always be screen objects for each cell in the screens QList. Unused screens
	// are identified by having an empty name.
	for (int i = 0; i < numColumns() * numRows(); i++)
		addScreen(Screen());
}
Beispiel #6
0
void QEglFSIntegration::initialize()
{
    qt_egl_device_integration()->platformInit();

    QEGLPlatformIntegration::initialize();

    if (!mDisableInputHandlers)
        createInputHandlers();

    if (qt_egl_device_integration()->usesDefaultScreen())
        addScreen(new QEglFSScreen(display()));
    else
        qt_egl_device_integration()->screenInit();
}
Beispiel #7
0
QTreeWidgetItem* LOCACC :: cloneScreen(QTreeWidgetItem *itemToClone)
{
    QStringList stringData = getScreenTreeData(itemToClone);
    QTreeWidgetItem *clonedScreen ;
    int counter = 0;
    QStringList newStringData(stringData);

    do
    {
        clonedScreen = addScreen(newStringData);
        counter++;
        newStringData[0] = stringData.at(0) + "-copy (" + QString::number(counter) + ")";
        newStringData[1] = stringData.at(1) + "-copy (" + QString::number(counter) + ")";
    }
    while (clonedScreen==NULL);

    int elementCount = itemToClone->childCount();
    for(int i = 0 ; i < elementCount ; i++)
    {
        QTreeWidgetItem *currentElement = itemToClone->child(i);
        cloneElement(currentElement,clonedScreen);
    }
    return clonedScreen;
}
Bool
addDisplay (char *name,
	    char **plugin,
	    int  nPlugin)
{
    CompDisplay *d;
    Display	*dpy;
    int		i;

    d = &compDisplay;

    if (displayPrivateLen)
    {
	d->privates = malloc (displayPrivateLen * sizeof (CompPrivate));
	if (!d->privates)
	    return FALSE;
    }
    else
	d->privates = 0;

    d->screenPrivateIndices = 0;
    d->screenPrivateLen     = 0;

    for (i = 0; i < CompModNum; i++)
	d->modMask[i] = CompNoMask;

    d->plugin.list.type   = CompOptionTypeString;
    d->plugin.list.nValue = 0;
    d->plugin.list.value  = 0;

    compDisplayInitOptions (d, plugin, nPlugin);

    d->textureFilter = GL_LINEAR;

    d->display = dpy = XOpenDisplay (name);
    if (!d->display)
    {
	fprintf (stderr, "%s: Couldn't open display %s\n",
		 programName, XDisplayName (name));
	return FALSE;
    }

#ifdef DEBUG
    XSynchronize (dpy, TRUE);
#endif

    XSetErrorHandler (errorHandler);

    updateModifierMappings (d);

    d->setDisplayOption		 = setDisplayOption;
    d->setDisplayOptionForPlugin = setDisplayOptionForPlugin;

    d->initPluginForDisplay = initPluginForDisplay;
    d->finiPluginForDisplay = finiPluginForDisplay;

    d->handleEvent = handleEvent;

    d->winTypeAtom    = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE", 0);
    d->winDesktopAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DESKTOP", 0);
    d->winDockAtom    = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DOCK", 0);
    d->winToolbarAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_TOOLBAR", 0);
    d->winMenuAtom    = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_MENU", 0);
    d->winUtilAtom    = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_UTILITY", 0);
    d->winSplashAtom  = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_SPLASH", 0);
    d->winDialogAtom  = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DIALOG", 0);
    d->winNormalAtom  = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_NORMAL", 0);
    d->winOpacityAtom = XInternAtom (dpy, "_NET_WM_WINDOW_OPACITY", 0);
    d->winActiveAtom  = XInternAtom (dpy, "_NET_ACTIVE_WINDOW", 0);

    d->wmStateAtom	  = XInternAtom (dpy, "WM_STATE", 0);
    d->wmDeleteWindowAtom = XInternAtom (dpy, "WM_DELETE_WINDOW", 0);

    d->xBackgroundAtom[0] = XInternAtom (dpy, "_XSETROOT_ID", 0);
    d->xBackgroundAtom[1] = XInternAtom (dpy, "_XROOTPMAP_ID", 0);

    if (testMode)
    {
	d->compositeOpcode = MAXSHORT;
	d->compositeEvent  = MAXSHORT;
	d->compositeError  = MAXSHORT;

	d->damageEvent = MAXSHORT;
	d->damageError = MAXSHORT;
    }
    else
    {
	int compositeMajor, compositeMinor;

	if (!XQueryExtension (dpy,
			      COMPOSITE_NAME,
			      &d->compositeOpcode,
			      &d->compositeEvent,
			      &d->compositeError))
	{
	    fprintf (stderr, "%s: No composite extension\n", programName);
	    return FALSE;
	}

	XCompositeQueryVersion (dpy, &compositeMajor, &compositeMinor);
	if (compositeMajor == 0 && compositeMinor < 2)
	{
	    fprintf (stderr, "%s: Old composite extension\n", programName);
	    return FALSE;
	}

	if (!XDamageQueryExtension (dpy, &d->damageEvent, &d->damageError))
	{
	    fprintf (stderr, "%s: No damage extension\n", programName);
	    return FALSE;
	}
    }

    d->shapeExtension = XShapeQueryExtension (dpy,
					      &d->shapeEvent,
					      &d->shapeError);

    compDisplays = d;

    if (testMode)
    {
	addScreen (d, 0);
    }
    else
    {
	XGrabServer (dpy);

	for (i = 0; i < ScreenCount (dpy); i++)
	{
	    redirectFailed = 0;
	    XCompositeRedirectSubwindows (dpy, XRootWindow (dpy, i),
					  CompositeRedirectManual);
	    XSync (dpy, FALSE);
	    if (redirectFailed)
	    {
		fprintf (stderr, "%s: Another composite manager is already "
			 "running on screen: %d\n", programName, i);
	    }
	    else
	    {
		if (!addScreen (d, i))
		{
		    fprintf (stderr, "%s: Failed to manage screen: %d\n",
			     programName, i);
		}
	    }
	}

	XUngrabServer (dpy);
    }

    if (!d->screens)
    {
	fprintf (stderr, "%s: No managable screens found on display %s\n",
		 programName, XDisplayName (name));
	return FALSE;
    }

    return TRUE;
}
Beispiel #9
0
void ScreenManager::loadScreens()
{
	//Create the Game screens
	addScreen(new Game());
}
void StateHandler::processEvents(sf::Event event)
{
	assert(safe);
	
	if(!m_bMenuShield && !m_bQuitShield)
	{
		currentState -> processEvents(event);
	}

	if(event.type == sf::Event::Closed || (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape) && !m_bMenuShield))
	{
		if(!m_bQuitShield )
		{
			m_bQuitShield = true;
		}
	}

	if(m_bMenuShield || m_bQuitShield)
	{
		if ((	event.mouseMove.x >= m_ShieldNoSprite.getPosition().x && event.mouseMove.x <= m_ShieldNoSprite.getPosition().x + 275  && 
				event.mouseMove.y >= m_ShieldNoSprite.getPosition().y && event.mouseMove.y <= m_ShieldNoSprite.getPosition().y + 100 ))
		{
			m_ShieldNoSprite.setTexture(m_ShieldNoPressedTexture);
		}
		else
		{
			m_ShieldNoSprite.setTexture(m_ShieldNoTexture);
		}

		if(		event.mouseButton.x >=  m_ShieldNoSprite.getPosition().x && event.mouseButton.x <=  m_ShieldNoSprite.getPosition().x + 275 && 
				event.mouseButton.y >=  m_ShieldNoSprite.getPosition().y && event.mouseButton.y <=  m_ShieldNoSprite.getPosition().y + 100 )
		{
			m_AudioManager.stopOrResumeMusic();
			m_bMenuShield = false;
			m_bQuitShield = false;
		}

		if ((	event.mouseMove.x >= m_ShieldYesSprite.getPosition().x && event.mouseMove.x <= m_ShieldYesSprite.getPosition().x + 275 && 
				event.mouseMove.y >= m_ShieldYesSprite.getPosition().y && event.mouseMove.y <= m_ShieldYesSprite.getPosition().y + 100 )) 
		{
			m_ShieldYesSprite.setTexture(m_ShieldYesPressedTexture);
		}
		else
		{
			m_ShieldYesSprite.setTexture(m_ShieldYesTexture);
		}

		if(		event.mouseButton.x >=  m_ShieldYesSprite.getPosition().x && event.mouseButton.x <=  m_ShieldYesSprite.getPosition().x+275 && 
				event.mouseButton.y >=  m_ShieldYesSprite.getPosition().y && event.mouseButton.y <=  m_ShieldYesSprite.getPosition().y+100)
		{
			if(m_bQuitShield)
			{
				m_pWindow->close();
				StateHandler::getInstance().stopRunning();
			}
			else if(m_bMenuShield)
			{
				sf::View gameView = m_pWindow->getView();
				m_pWindow->setView(m_pWindow->getDefaultView());
				addScreen(new TitleScreen());
				m_bMenuShield = false;
			}
		}
	}
}
Beispiel #11
0
BOOL
CScreensLinks::doDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message) {
	case WM_INITDIALOG:
		init(hwnd);
		return TRUE;

	case WM_SIZE:
		resizeErrorBoxes();
		break;

	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDOK:
			SetFocus(getItem(hwnd, IDOK));
			if (save(hwnd)) {
				EndDialog(hwnd, 0);
			}
			return TRUE;

		case IDCANCEL:
			EndDialog(hwnd, 0);
			return TRUE;

		case IDC_SCREENS_SCREENS:
			switch (HIWORD(wParam)) {
			case LBN_DBLCLK:
				editScreen(hwnd);
				return TRUE;

			case LBN_SELCHANGE:
				updateScreensControls(hwnd);
				updateLinkView(hwnd);
				return TRUE;

			case LBN_SELCANCEL:
				updateScreensControls(hwnd);
				updateLinkView(hwnd);
				return TRUE;
			}
			break;

		case IDC_SCREENS_ADD_SCREEN:
			addScreen(hwnd);
			return TRUE;

		case IDC_SCREENS_REMOVE_SCREEN:
			removeScreen(hwnd);
			return TRUE;

		case IDC_SCREENS_EDIT_SCREEN:
			editScreen(hwnd);
			return TRUE;

		case IDC_SCREENS_LINKS:
			switch (HIWORD(wParam)) {
			case LBN_SELCHANGE:
				editLink(hwnd);
				return TRUE;

			case LBN_SELCANCEL:
				editLink(hwnd);
				return TRUE;
			}
			break;

		case IDC_SCREENS_ADD_LINK:
			addLink(hwnd);
			return TRUE;

		case IDC_SCREENS_REMOVE_LINK:
			removeLink(hwnd);
			return TRUE;

		case IDC_SCREENS_SRC_SIDE:
			switch (HIWORD(wParam)) {
			case CBN_SELCHANGE:
				changeSrcSide(hwnd);
				break;
			}
			break;

		case IDC_SCREENS_SRC_SCREEN:
			switch (HIWORD(wParam)) {
			case CBN_SELCHANGE:
				changeSrcScreen(hwnd);
				break;
			}
			break;

		case IDC_SCREENS_DST_SCREEN:
			switch (HIWORD(wParam)) {
			case CBN_SELCHANGE:
				changeDstScreen(hwnd);
				break;
			}
			break;

		case IDC_SCREENS_SRC_START:
			switch (HIWORD(wParam)) {
			case EN_KILLFOCUS:
				changeIntervalStart(hwnd, LOWORD(wParam),
							m_editedLink.m_srcInterval);
				break;
			}
			break;

		case IDC_SCREENS_SRC_END:
			switch (HIWORD(wParam)) {
			case EN_KILLFOCUS:
				changeIntervalEnd(hwnd, LOWORD(wParam),
							m_editedLink.m_srcInterval);
				break;
			}
			break;

		case IDC_SCREENS_DST_START:
			switch (HIWORD(wParam)) {
			case EN_KILLFOCUS:
				changeIntervalStart(hwnd, LOWORD(wParam),
							m_editedLink.m_dstInterval);
				break;
			}
			break;

		case IDC_SCREENS_DST_END:
			switch (HIWORD(wParam)) {
			case EN_KILLFOCUS:
				changeIntervalEnd(hwnd, LOWORD(wParam),
							m_editedLink.m_dstInterval);
				break;
			}
			break;
		}

		break;

	case WM_CTLCOLORSTATIC:
		switch (GetDlgCtrlID((HWND)lParam)) {
		case IDC_SCREENS_OVERLAP_ERROR:
			SetBkColor((HDC)wParam, GetSysColor(COLOR_3DFACE));
			SetTextColor((HDC)wParam, RGB(255, 0, 0));
			return (BOOL)GetSysColorBrush(COLOR_3DFACE);
		}
		break;

	// error outlines
	case WM_DRAWITEM: {
		DRAWITEMSTRUCT* di = (DRAWITEMSTRUCT*)lParam;
		if (di->CtlType == ODT_STATIC) {
			HGDIOBJ oldPen   = SelectObject(di->hDC, m_redPen);
			HGDIOBJ oldBrush = SelectObject(di->hDC,
										GetStockObject(NULL_BRUSH));
			Rectangle(di->hDC, di->rcItem.left, di->rcItem.top,
							di->rcItem.right, di->rcItem.bottom);
			SelectObject(di->hDC, oldPen);
			SelectObject(di->hDC, oldBrush);
			return TRUE;
		}
		break;
	}

	default:
		break;
	}

	return FALSE;
}
//Huge main function.
int main(int argc, char *argv[]) {
  if (argc < 3){                                                      //if you don't type enough arguments
    printf("Sockets client, usage:\n");
    printf("sockets_client  {IP-address} {port} \n");
    return 0;
  } 
  else {
    free(server);
    server = malloc((strlen(argv[1] + 1) * sizeof(char)));
    strcpy(server, argv[1]);
    portno = atoi(argv[2]);
  }

  int c;
  while(1){
    if(screen == 0){ 
      CATEGORY = 8;
      currentRecord = 0;
      recordView = 0;
      xt_par0(XT_CLEAR_SCREEN);
      lifeTracker();
      xt_par2(XT_SET_ROW_COL_POS,row = 8, col = 2);
    }
    while(screen == 0) {
      while((c = getkey()) == KEY_NOTHING);
        if(c == KEY_F9) screen = 3;
        else if(c == KEY_F3 && maxRecord > 0 && col == 20) screen = 4;
        else if(c == KEY_DOWN) {
          if(col == 2 && row >= 8 && row < catCounter + 7){ 
            xt_par2(XT_SET_ROW_COL_POS,CATEGORY = ++row,col);
  	        updateRecords(recordView);
  	      }
          if(col == 20 && row >= 7 && row <= tempCounter * 5 + 1){
            if(row < 22){
              xt_par2(XT_SET_ROW_COL_POS,row+=5,col);
              ++currentRecord;
  	       }
            else if(recordView < tempCounter-4){ 
              ++recordView;
              if(search == 1) searchResults(recordView);
    	        else updateRecords(recordView);
                xt_par2(XT_SET_ROW_COL_POS,row=22,col);
                ++currentRecord;
            }
          }
        	if(col > 94 && col < 120){
        	  if(row == 9)
        	    xt_par2(XT_SET_ROW_COL_POS,row = 12,col = 95);
        	  else if(row == 12)
        	    xt_par2(XT_SET_ROW_COL_POS,row = 13,col = 95);
        	  else if(row == 13)
        	    xt_par2(XT_SET_ROW_COL_POS,row = 16,col);
            else if(row < 20) 
              xt_par2(XT_SET_ROW_COL_POS,++row,col);
            else if(row == 20 && col < 110)
              xt_par2(XT_SET_ROW_COL_POS,++row,col);
            else if(row == 20 && col > 110)
              xt_par2(XT_SET_ROW_COL_POS,++row,col = 109);
        	}
        }
        else if(c == KEY_UP){
          if(col == 2 && row > 8 && row <= 18){
            xt_par2(XT_SET_ROW_COL_POS,CATEGORY = --row,col);
        	  updateRecords(recordView);
        	}
          if(col == 20 && row >= 7 && row < 24){
            if(row <= 24 && row > 7){
              xt_par2(XT_SET_ROW_COL_POS,row-=5,col);
              --currentRecord;
  	        }
            else if(recordView > 0){
              --recordView;
            if(search == 1) searchResults(recordView);
      	    else updateRecords(recordView);
                xt_par2(XT_SET_ROW_COL_POS,row=7,col);
                --currentRecord;
            }
          }
        	if(row > 9 && col > 94 && col < 120){
        	  if(row == 12)
        	    xt_par2(XT_SET_ROW_COL_POS,row = 9,col = 95);
        	  else if(row == 13)
        	    xt_par2(XT_SET_ROW_COL_POS,row = 12,col = 95);
            else if(row == 16) 
              xt_par2(XT_SET_ROW_COL_POS, row = 13, col = 95);
        	  else if(row < 22)
        	    xt_par2(XT_SET_ROW_COL_POS, --row, col);
        	}
        }
        else if(c == KEY_ENTER && col > 94 && col < 120 && row > 12 && row < 18) xt_par2(XT_SET_ROW_COL_POS,++row,col=95);
        else if((c == KEY_LEFT || c == KEY_RIGHT) && col == 2) {
        	CATEGORY = row;
        	updateRecords(recordView);
        	xt_par2(XT_SET_ROW_COL_POS,row=7,col=20);
        }
        else if((c == KEY_LEFT || c == KEY_RIGHT) && col == 20) {
          xt_par2(XT_SET_ROW_COL_POS,row=CATEGORY,col=2);
          if (search == 1) clearSearch();
          currentRecord = recordView = search = 0;
  	      updateRecords(recordView);
        }
        else if(c == KEY_LEFT && col >= 95) {
          if(col > 95)
            xt_par2(XT_SET_ROW_COL_POS,row,--col);
          else if(row == 13 && col == 95) 
            xt_par2(XT_SET_ROW_COL_POS,--row,col = 101);
          else if(row >= 17 && row <= 21 && col == 95) 
            xt_par2(XT_SET_ROW_COL_POS,--row, col = 119);
        }
        else if(c == KEY_RIGHT && col > 94) {
          if(row == 9 && col < 112) 
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          else if(row == 12 && col < 101) 
              xt_par2(XT_SET_ROW_COL_POS,row,++col);
            else if(row == 12 && col == 101) 
              xt_par2(XT_SET_ROW_COL_POS,++row,col = 95);
          else if(row == 13 && col < 112) 
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          else if(row >= 16 && row < 21 && col < 119)
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          else if(row == 21 && col < 109) 
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          else if(row >= 16 && row <= 21 && col == 119) 
            xt_par2(XT_SET_ROW_COL_POS,++row,col = 95);
        }
        else if(c == KEY_DELETE) {
          putchar(' ');
          if(row == 9) Category[col - 95] = ' ';
          else if(row == 12) Title[col - 95] = ' ';
          else if(row == 13) Title[col - 88] = ' ';
          else if(row >= 16 && row < 22) Body[(row - 16) * 25 + col - 95] = ' ';
        }
        else if(c == KEY_BACKSPACE && col >= 95) {
          if((row == 9 || row == 12) && col > 95) {
	    xt_par2(XT_SET_ROW_COL_POS,row,--col);
            putchar(' ');
            Category[col - 95] = ' ';
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
          else if((row == 9 || row == 12) && col == 95) {
            putchar(' ');
            Title[col - 95] = ' ';
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
          else if(row == 13 && col > 95) {
	          xt_par2(XT_SET_ROW_COL_POS,row,--col);
            putchar(' ');
            Title[col - 88] = ' ';
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
          else if(row == 13 && col == 95) {
	          xt_par2(XT_SET_ROW_COL_POS,--row,col = 101);
            putchar(' ');
            Title[col - 88] = ' ';
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
          else if(row >= 16 && row < 22 && col > 95) {
	          xt_par2(XT_SET_ROW_COL_POS,row,--col);
            putchar(' ');
            Body[(row - 16) * 25 + col - 95] = ' ';
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
          else if(row == 16 && col == 95) {
            putchar(' ');
            Body[(row - 16) * 25 + col - 95] = ' ';
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
          else if(row > 16 && row < 22 && col == 95) {
	          xt_par2(XT_SET_ROW_COL_POS,--row,col = 119);
            putchar(' ');
            Body[(row - 16) * 25 + col - 95] = ' ';
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
        } 
        else if((c >= ' ' && c <= '~') && col >= 95 && col < 120){
          if(row == 9 && col < 112) {
            putchar(c);
            Category[col - 95] = c;
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          }
          else if(row == 9 && col == 112) {
            putchar(c);
            Category[col - 95] = c;
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
          else if(row == 12 && col < 101) {
            putchar(c);
            Title[col - 95] = c;
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          }
          else if(row == 12 && col == 101) {
            putchar(c);
            Title[col - 95] = c;
            xt_par2(XT_SET_ROW_COL_POS,++row,col=95);
          }
          else if(row == 13 && col < 112) {
            putchar(c);
            Title[col - 88] = c;
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          }
          else if(row == 13 && col == 112) {
            putchar(c);
            Title[col - 88] = c;
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
          else if(row >= 16 && row < 21 && col < 119) {
            putchar(c);
            Body[(row - 16) * 25 + col - 95] = c;
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          }
          else if(row >= 16 && row < 21 && col == 119) {
            putchar(c);
            Body[(row - 16) * 25 + col - 95] = c;
            xt_par2(XT_SET_ROW_COL_POS,++row,col = 95);
          }
          else if(row == 21 && col < 109) {
            putchar(c);
            Body[(row - 16) * 25 + col - 95] = c;
            xt_par2(XT_SET_ROW_COL_POS,row,++col);
          }
          else if(row == 21 && col == 109) {
            putchar(c);
            Body[(row - 16) * 25 + col - 95] = c;
            xt_par2(XT_SET_ROW_COL_POS,row,col);
          }
        }
        else if(c == KEY_F2)
          screen = 1;
        else if(c == KEY_F4 && col == 20 && maxRecord != 0)
          screen = 2;
        else if(c == KEY_F6) {
        	if(sort == 0){
        	  bubbleSort();
        	  sort = 1;
        	}
        	else if (sort == 1){
        	  bubbleSortTime();
        	  sort = 0;
        	}
        }
        else if (c == KEY_F7){
        	if(col < 95) {
            xt_par2(XT_SET_ROW_COL_POS,row = 9,col = 95);
            for(reset = 0; reset < 29; reset++) Title[reset] = ' ';
            for(reset = 0; reset < 140; reset++) Body[reset] = ' ';
            for(reset = 0; reset < 16; reset++) Category[reset] = ' ';
          }
        	else if(Title[0] == ' ' && Body[0] == ' ' && Category[0] == ' ') {
            xt_par2(XT_SET_ROW_COL_POS,row = CATEGORY,col = 2);
            clearSearch();
            updateRecords(0);
          }
          else if(Title[0] != ' ' || Body[0] != ' ' || Category[0] != ' ') {
            clearSearch();
	          search = 1;
            searchResults(0);
            xt_par2(XT_SET_ROW_COL_POS,row = 7, col = 20);
          }
        }
    }
    if (screen == 1 || screen == 2){
      for(reset = 0; reset < 29; reset++) Title[reset] = ' ';
      for(reset = 0; reset < 140; reset++) Body[reset] = ' ';
      for(reset = 0; reset < 16; reset++) Category[reset] = ' ';
      addScreen();
      if (screen == 2){ 
        char TempBodyA[71]; 
        char TempBodyB[71];
        int k = 0;
        while(k != 70) {
      	  TempBodyA[k] = ' ';
      	  TempBodyB[k] = ' ';
      	  k++;
        }
        k = 0; 
        xt_par2(XT_SET_ROW_COL_POS, row = 12, col = 25);
        xt_par0(XT_CH_GREEN);
        printf("Record %d (%s)", currentRecord+1, catStorage[currentRecord].timedate); //get the time using myui1
        xt_par0(XT_CH_WHITE);
        xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25);
        printf("%s", catStorage[currentRecord].category);
        int j = 0; 
        while(catStorage[currentRecord].body[j] != '\0'){
          if (j < 70) TempBodyA[j] = catStorage[currentRecord].body[j];
          else if (j < 140) TempBodyB[j%70] = catStorage[currentRecord].body[j];
          j++;
        }
        TempBodyA[70] = '\0';
        TempBodyB[70] = '\0';
        xt_par2(XT_SET_ROW_COL_POS, row = 16, col = 25);
        printf("%s", catStorage[currentRecord].subject);
        xt_par0(XT_CH_WHITE);
        xt_par2(XT_SET_ROW_COL_POS, row = 19, col = 25);
        printf("%s", TempBodyA); 
        xt_par2(XT_SET_ROW_COL_POS, row = 20, col = 25); 
        printf("%s", TempBodyB); 
        xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25); 
        strncpy(Title, catStorage[currentRecord].subject, sizeof(Title));
        strncpy(Body, catStorage[currentRecord].body, sizeof(Body));
        strncpy(Category, catStorage[currentRecord].category, sizeof(Category));
      }
    } 
    while(screen == 1 || screen == 2) {
      while((c = getkey()) == KEY_NOTHING);
      if (c == KEY_F9){
        screen = 0;
        xt_par0(XT_CLEAR_SCREEN);
      }
      else if (c == KEY_DOWN){
        if(row == 14) 
          xt_par2(XT_SET_ROW_COL_POS, row = 16, col = 25);
        else if(row == 16)
          xt_par2(XT_SET_ROW_COL_POS,row = 19,col = 25);
    	else if(row < 20)
    	  xt_par2(XT_SET_ROW_COL_POS,++row,col);
      }
      else if (c == KEY_UP){    
        if(row == 16)
          xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25);
        if(row == 19)
          xt_par2(XT_SET_ROW_COL_POS,row = 16,col = 25);
    	else if(row == 20)
    	  xt_par2(XT_SET_ROW_COL_POS,--row,col);
      }
      else if(c == KEY_LEFT && col > 25 && col < 95) xt_par2(XT_SET_ROW_COL_POS,row,--col);
      else if(c == KEY_LEFT && col == 25 && row == 20) xt_par2(XT_SET_ROW_COL_POS,--row,col=94);
      else if(c == KEY_RIGHT && col > 24 && col < 37 && row == 14) xt_par2(XT_SET_ROW_COL_POS,row,++col);
      else if(c == KEY_RIGHT && col > 24 && col < 53 && row == 16) xt_par2(XT_SET_ROW_COL_POS,row,++col);
      else if(c == KEY_RIGHT && col > 24 && col < 94 && row > 18) xt_par2(XT_SET_ROW_COL_POS,row,++col);
      else if(c == KEY_RIGHT && col == 94 && row == 19) xt_par2(XT_SET_ROW_COL_POS,++row,col=25);   
      else if (c == KEY_ENTER && row > 18 && row < 20) xt_par2(XT_SET_ROW_COL_POS,++row,col=25);      
      else if (c == KEY_BACKSPACE && col >= 25 && col < 95 && ((row > 18 && row < 21) || row == 16 || row == 14)){
      	if(row == 14 && col > 25 && col < 39) {
      	  xt_par2(XT_SET_ROW_COL_POS,row,--col);
      	  putchar(' ');
      	  Category[col - 25] = ' ';
      	}
      	else if(row == 16 && col > 25 && col <= 54) {
      	  xt_par2(XT_SET_ROW_COL_POS,row,--col);
      	  putchar(' ');
      	  Title[col - 25] = ' ';
      	}
      	else if(row == 19 && col > 25 && col <= 95) {
      	  xt_par2(XT_SET_ROW_COL_POS,row,--col);
      	  putchar(' ');
      	  Body[col - 25] = ' ';
      	}
      	else if(row == 20 && col > 25 && col <= 95) {
      	  xt_par2(XT_SET_ROW_COL_POS,row,--col);
      	  putchar(' ');
      	  Body[col + 45] = ' ';
      	}
      	else if(row == 20){                                          
      	  xt_par2(XT_SET_ROW_COL_POS,--row,col=94);
      	  putchar(' ');
      	  Body[69] = ' ';
      	}
	      xt_par2(XT_SET_ROW_COL_POS,row,col);
      }
      else if (c == KEY_DELETE) {
        if(row == 14 && col >= 25 && col < 38) {
      	  putchar(' ');
      	  Category[col - 25] = ' ';
	    }
    	else if(row == 16 && col >= 25 && col < 54) {
    	  putchar(' ');
    	  Title[col - 25] = ' ';
    	}
    	else if(row == 19 && col >= 25 && col <= 95) {
    	  putchar(' ');
    	  Body[col - 25] = ' ';
    	}
    	else if(row == 20 && col >= 25 && col <= 95) {
    	  putchar(' ');
    	  Body[col + 45] = ' ';
    	}
      xt_par2(XT_SET_ROW_COL_POS,row,col);
      } 
      else if((c >= ' ' && c <= '~') && col >= 25 && col < 95) {
      	if(row == 14 && col >= 25 && col < 40) {
      	  putchar(c);
      	  Category[col - 25] = c;
      	}
      	else if(row == 16 && col >= 25 && col < 54) {
      	  putchar(c);
      	  Title[col - 25] = c;
      	}
      	else if(row == 19 && col >= 25 && col <= 95) {
      	  putchar(c);
      	  Body[col - 25] = c;
      	}
      	else if(row == 20 && col >= 25 && col <= 95) {
      	  putchar(c);
      	  Body[col + 45] = c;
      	}
      	if (col < 94 && !(row == 16 && col > 52) && !(row == 14 && col > 36)){
      	  ++col; 
      	}    
      	else{ 
      	  if (row == 19)                                            
      	    xt_par2(XT_SET_ROW_COL_POS,++row,col=25);
      	  else xt_par2(XT_SET_ROW_COL_POS,row,col); 
      	}
      }
      else if(c == KEY_F2 && screen == 1 /* && there is a valid title and description */){
	      //save record to corresponding subject
        if(Title[0] != ' ' || Body[0] != ' ' || Category[0] != ' ') {
          removeBlanks();
          readmyStoreFromChildSOCKETS("add", Title, Body, Category, NULL);
        }
        int k = 0;
        while(k != 29) Title[k++] = ' ';
        k = 0;
        while(k != 140) Body[k++] = ' ';
        k = 0;
        while(k != 15) Category[k++] = ' ';
        maxRecord++;
        screen = 0;
      }
      else if(c == KEY_F2 && screen == 2 /* && there has been a valid change in the record */){
      //update record
	    removeBlanks();
      char str[80];
    	for(i = 0; i < maxRecord; i++){
    	  if(strcmp(catStorage[currentRecord].subject, dataStorage[i].subject) == 0 &&
    	     strcmp(catStorage[currentRecord].body, dataStorage[i].body) == 0 &&
    	     strcmp(catStorage[currentRecord].category, dataStorage[i].category) == 0 &&
    	     strcmp(catStorage[currentRecord].timedate, dataStorage[i].timedate) == 0){//looks for corresponding record in the actual record list
    	    sprintf(str, "%d", i+1);
    	    break;
    	  }
    	}
      readmyStoreFromChildSOCKETS("edit", str, Title, Body, Category);
      int k = 0;
      while(k != 29) Title[k++] = ' ';
      k = 0;
      while(k != 140) Body[k++] = ' ';
      k = 0;
      while(k != 15) Category[k++] = ' ';
      screen = 0;
    }
  }
    if (screen == 4){
      for(reset = 0; reset < 29; reset++) Title[reset] = ' ';
      for(reset = 0; reset < 140; reset++) Body[reset] = ' ';
      for(reset = 0; reset < 16; reset++) Category[reset] = ' ';
      deleteScreen();
      if (screen == 4){ 
        char TempBodyA[71]; 
        char TempBodyB[71];
        int k = 0;
        while(k != 70) {
      	  TempBodyA[k] = ' ';
      	  TempBodyB[k] = ' ';
      	  k++;
        }
        k = 0;
        xt_par2(XT_SET_ROW_COL_POS, row = 12, col = 25);
        xt_par0(XT_CH_GREEN);
        printf("Record %d (%s)", currentRecord+1, catStorage[currentRecord].timedate); //get the time using myui1
        xt_par0(XT_CH_WHITE);
        xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25);
        printf("%s", catStorage[currentRecord].category);
        int j = 0; 
        while(catStorage[currentRecord].body[j] != '\0'){
          if (j < 70) TempBodyA[j] = catStorage[currentRecord].body[j];
          else if (j < 140) TempBodyB[j%70] = catStorage[currentRecord].body[j];
          j++;
        }
        TempBodyA[70] = '\0';
        TempBodyB[70] = '\0';
        xt_par2(XT_SET_ROW_COL_POS, row = 16, col = 25);
        printf("%s", catStorage[currentRecord].subject);
        xt_par0(XT_CH_WHITE);
        xt_par2(XT_SET_ROW_COL_POS, row = 19, col = 25);
        printf("%s", TempBodyA); 
        xt_par2(XT_SET_ROW_COL_POS, row = 20, col = 25); 
        printf("%s", TempBodyB); 
        xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25); 
        strncpy(Title, catStorage[currentRecord].subject, sizeof(Title));
        strncpy(Body, catStorage[currentRecord].body, sizeof(Body));
        strncpy(Category, catStorage[currentRecord].category, sizeof(Category));
        //print corresponding record in correct locations using myui1 
      }
    } 
    while(screen == 4) {
      while((c = getkey()) == KEY_NOTHING);
        if (c == KEY_F9){
          screen = 0;
          xt_par0(XT_CLEAR_SCREEN);
        }
        else if (c == KEY_F3){
        char str[80];
        for(i = 0; i < maxRecord; i++){
        	if(strcmp(catStorage[currentRecord].subject, dataStorage[i].subject) == 0 &&
        	   strcmp(catStorage[currentRecord].body, dataStorage[i].body) == 0 &&
        	   strcmp(catStorage[currentRecord].category, dataStorage[i].category) == 0 &&
        	   strcmp(catStorage[currentRecord].timedate, dataStorage[i].timedate) == 0){           //looks for corresponding record in the actual record list
        	  sprintf(str, "%d", i+1);
        	  break;
        	}
        }
        readmyStoreFromChildSOCKETS("delete", str, NULL, NULL, NULL);
        maxRecord--;
        screen = 0;
      }
    }
    if (screen == 3) break;
  }
  getkey_terminate();
  xt_par0(XT_CLEAR_SCREEN);
  xt_par0(XT_BG_DEFAULT);
  xt_par2(XT_SET_ROW_COL_POS,row=1,col=1);
  getkey_terminate();
  return 0;
}    
Beispiel #13
0
static
LRESULT CALLBACK
mainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message) {
	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDCANCEL:
			// test for unsaved data
			if (ARG->m_config != ARG->m_oldConfig) {
				if (!askVerify(hwnd, getString(IDS_UNSAVED_DATA_REALLY_QUIT))) {
					return 0;
				}
			}

			// quit
			PostQuitMessage(0);
			return 0;

		case IDOK:
		case IDC_MAIN_TEST: {
			// note if testing
			const bool testing = (LOWORD(wParam) == IDC_MAIN_TEST);

			// save data
			if (ARG->m_config != ARG->m_oldConfig) {
				if (!saveConfig(ARG->m_config, false)) {
					showError(hwnd, CStringUtil::format(
								getString(IDS_SAVE_FAILED).c_str(),
								getErrorString(GetLastError()).c_str()));
					return 0;
				}
				ARG->m_oldConfig = ARG->m_config;
				enableSaveControls(hwnd);
			}

			// launch child app
			DWORD threadID;
			HANDLE thread = launchApp(hwnd, testing, &threadID);
			if (thread == NULL) {
				return 0;
			}

			// handle child program
			if (testing) {
				// wait for process to stop, allowing the user to kill it
				waitForChild(hwnd, thread, threadID);

				// clean up
				CloseHandle(thread);
			}
			else {
				// don't need thread handle
				CloseHandle(thread);

				// notify of success
				askOkay(hwnd, getString(IDS_STARTED_TITLE),
								getString(IDS_STARTED));

				// quit
				PostQuitMessage(0);
			}
			return 0;
		}

		case IDC_MAIN_AUTOSTART: {
			// construct command line
			CString cmdLine = getCommandLine(hwnd, false);
			if (!cmdLine.empty()) {
				// run dialog
				CAutoStart autoStart(hwnd,
							isClientChecked(hwnd) ? NULL : &ARG->m_config,
							cmdLine);
				autoStart.doModal();
				if (autoStart.wasUserConfigSaved()) {
					ARG->m_oldConfig = ARG->m_config;
					enableSaveControls(hwnd);
				}
			}
			return 0;
		}

		case IDC_MAIN_SAVE:
			if (!saveConfig(ARG->m_config, false)) {
				showError(hwnd, CStringUtil::format(
								getString(IDS_SAVE_FAILED).c_str(),
								getErrorString(GetLastError()).c_str()));
			}
			else {
				ARG->m_oldConfig = ARG->m_config;
				enableSaveControls(hwnd);
			}
			return 0;

		case IDC_MAIN_CLIENT_RADIO:
		case IDC_MAIN_SERVER_RADIO:
			enableMainWindowControls(hwnd);
			return 0;

		case IDC_MAIN_SERVER_ADD_BUTTON:
			addScreen(hwnd);
			return 0;

		case IDC_MAIN_SERVER_EDIT_BUTTON:
			editScreen(hwnd);
			return 0;

		case IDC_MAIN_SERVER_REMOVE_BUTTON:
			removeScreen(hwnd);
			return 0;

		case IDC_MAIN_SERVER_SCREENS_LIST:
			if (HIWORD(wParam) == LBN_SELCHANGE) {
				enableScreensControls(hwnd);
				updateNeighbors(hwnd);
			}
			else if (HIWORD(wParam) == LBN_DBLCLK) {
				editScreen(hwnd);
				return 0;
			}
			break;

		case IDC_MAIN_SERVER_LEFT_COMBO:
			if (HIWORD(wParam) == CBN_SELENDOK) {
				changeNeighbor(hwnd, (HWND)lParam, kLeft);
				return 0;
			}
			break;

		case IDC_MAIN_SERVER_RIGHT_COMBO:
			if (HIWORD(wParam) == CBN_SELENDOK) {
				changeNeighbor(hwnd, (HWND)lParam, kRight);
				return 0;
			}
			break;

		case IDC_MAIN_SERVER_TOP_COMBO:
			if (HIWORD(wParam) == CBN_SELENDOK) {
				changeNeighbor(hwnd, (HWND)lParam, kTop);
				return 0;
			}
			break;

		case IDC_MAIN_SERVER_BOTTOM_COMBO:
			if (HIWORD(wParam) == CBN_SELENDOK) {
				changeNeighbor(hwnd, (HWND)lParam, kBottom);
				return 0;
			}
			break;

		case IDC_MAIN_OPTIONS:
			s_globalOptions->doModal();
			enableSaveControls(hwnd);
			break;

		case IDC_MAIN_ADVANCED:
			s_advancedOptions->doModal(isClientChecked(hwnd));
			enableSaveControls(hwnd);
			break;
		}

	default:
		break;
	}
	return DefDlgProc(hwnd, message, wParam, lParam);
}