Search Results

Search found 51109 results on 2045 pages for 'browser back button'.

Page 218/2045 | < Previous Page | 214 215 216 217 218 219 220 221 222 223 224 225  | Next Page >

  • Back in Brazil! See you at JavaOne LAD this week

    - by terrencebarr
    It’s great to be back in Sao Paulo. I’m looking forward to a another buzzing JavaOne LAD conference and the energy of the Latin American Java community! And, of course, catching up with Brazilian friends over some serious Caipirinhas I’m part of the Technical Keynote on Tuesday, and doing three technical sessions: Harnessing the Explosion of Advanced Microcontrollers with Embedded Java, Dec 5, 11:15 A New Platform for Ubiquitous Computing: Oracle Java ME Embedded, Dec 5, 17:30 Java ME Embedded Profile 8—for an Embedded World with Increasing Demands, Dec 6, 11:15 In fact, I think I will morph the last session into a more wide sweeping introduction into Java ME 8 (of which the Java ME Embedded Profile 8 is a component) – there is so much new and cool stuff in the pipe that just talking about Java ME Embedded Profile doesn’t do it justice.   Plus, I’ll be showing some small embedded Java toys at the demo booth (in the Exhibition Pavilion).   Hope to see you there!   Cheers, – Terrence Filed under: Mobile & Embedded Tagged: "Java ME 8", "JavaOne LAD", Java Embedded, Java ME

    Read the article

  • Browser language detection & content ranking for new language on the same site.

    - by Arnaud
    I've been reading a lot about it but it's still really hard to make up my mind. My understand is that if your website provide a link to the other language, this should not be an issue for google as long as your links are clear and clean, google will be able to make his way through it. The website was orginaly in french and I added the english version and I'm just worry that english speaker will just leave if the site is not in the correct language, for the home page I just wanted to get the value from the browser and redirect it to /fr/ or /en/ for the first page. (using php this will be very easy) Could you guys have a look at it and tell me what you think about it http://tinyurl.com/bpc5bn9 I don't want to get it wrong and lost my ranking with google. Also the website has good rank on the french side and the english has been online for 2 weeks and only get few visit a day, is that because all the back link refer to /fr/ and google is cleaver enough to decide that they are 2 differantes website and the back link will have to point to /en/ to increase the ranking value? Or will take few more weeks for the website to grow? Thanks for your hep

    Read the article

  • How to display/add play button on youtube image?

    - by Zakir Sajib
    I have embedded the youtube image from youtube server which is "http://img.youtube.com/vi/0.jpg", now there is no play button shows up on middle of the image as we see usually any youtube videos! I tried to use the following code to get an image on top of the youtube image but it shows bigger picture, i know why <a class="fancybox" href="#video"> <img src="/wp-content/themes/mytheme/images/play_button.png" no-repeat width: 0px height:0px; style="background: url(http://img.youtube.com/vi/<?php echo $youtubeid ; ?>/0.jpg) transparent" width="180" height="150"/> <div id ="video"> // here is my embedded youtube usual code </div> both images shown in 180 x 150 size, but thats not what i want. I want youtube image will be shown in 180 x 150 size and play button image (play_button.png) will be display in middle of the youtube image in small size. Any clue in css or coding in php will be great favour.

    Read the article

  • Is it possible to use the IE10 App without making Internet Explorer the default browser?

    - by nhinkle
    Windows 8 comes with two versions of Internet Explorer: the normal desktop version, which looks just like IE9, and the Modern UI version, which is a full-screen tablet-style app. By default, links opened in desktop mode open in desktop IE, and links opened in Modern UI apps open in the full-screen app. When you set a new default browser (like Google Chrome, which has a Modern UI mode now), you can no longer access IE10 in the Modern UI at all - the tile disappears from the start screen, and there's no way to manually invoke it. I don't use IE10 much, but I'd like to have access to it in Metro mode, because it's handy for testing things out. I don't want to have IE be my default browser though. Is there any way to get the IE10 "App" to show up without setting IE to be the default browser everywhere?

    Read the article

  • Develop in trunk and then branch off, or in release branch and then merge back?

    - by Torben Gundtofte-Bruun
    Say that we've decided on following a "release-based" branching strategy, so we'll have a branch for each release, and we can add maintenance updates as sub-branches from those. Does it matter whether we: develop and stabilize a new release in the trunk and then "save" that state in a new release branch; or first create that release branch and only merge into the trunk when the branch is stable? I find the former to be easier to deal with (less merging necessary), especially when we don't develop on multiple upcoming releases at the same time. Under normal circumstances we would all be working on the trunk, and only work on released branches if there are bugs to fix. What is the trunk actually used for in the latter approach? It seems to be almost obsolete, because I could create a future release branch based on the most recent released branch rather than from the trunk. Details based on comment below: Our product consists of a base platform and a number of modules on top; each is developed and even distributed separately from each other. Most team members work on several of these areas, so there's partial overlap between people. We generally work only on 1 future release and not at all on existing releases. One or two might work on a bugfix for an existing release for short periods of time. Our work isn't compiled and it's a mix of Unix shell scripts, XML configuration files, SQL packages, and more -- so there's no way to have push-button builds that can be tested. That's done manually, which is a bit laborious. A release cycle is typically half a year or more for the base platform; often 1 month for the modules.

    Read the article

  • Remember way back when we had a free decompiler?

    - by Justin Jones
    I, like probably so many of the rest of you, was mortified when Reflector was sold to RedGate. I knew where it was going. Suddenly you had to install it instead of just download and run it. I had a deep down feeling that one of the most useful tools in my arsenal was about to become a corporate product and no longer belong to the world of free tools. Sure enough it did. For a while now I’ve limped by without my favorite decompiler. This was made a little easier by the fact that you can now debug into the .net framework, but I still missed Reflector. JetBrains, makers of the superawesome and well worth the cost ReSharper (no it’s not free) have made their own decompiler that is comparable with Reflector, and it’s free. It’s still a corporate product, and JetBrains isn’t exactly known for making free software, but for now we have an option back on the table until some other industrious developer makes the next Reflector. dotPeek can be downloaded here.  http://www.jetbrains.com/decompiler/

    Read the article

  • How can I force my browser to search Google in English?

    - by Tom Wijsman
    I'm too bored of seeing sites like Google and such show up in my native language, I would rather like them to be in English. Yet, I have to explicitly change the URL to .com and en and that kind of parameters in order for them to show up in English. Can I somehow force this? So, how is Google configured? However, it is set to English on the site itself so it has to be my browser: Then, how does my browser land up on non-english pages, like Google? It usually shows up in non-English when I'm performing a search, which uses: {google:baseURL}search?{google:RLZ}{google:acceptedSuggestion}{google:originalQueryForSuggestion}{google:searchFieldtrialParameter}{google:instantFieldTrialGroupParameter}sourceid=chrome&ie={inputEncoding}&q=%s When performing a search, it fills these variables in with non-english values. How can I tell my browser to fill these in with the English values? My Google Chrome options give preference to English:

    Read the article

  • How to find out the installation path to my browser?

    - by rumtscho
    I am installing a proprietary CAD application (MEDUSA4 personal) and the installer wants to know the path to my web browser (as a prerequisite for online help). I have the default firefox installation and chromium, but I don't know the installation path for any of them, and couldn't find them among the usual suspects (/usr/bin, /usr/lib). It would be nice if you could tell me the path to one of them, and even nicer if you can tell me how to find out the installation path to any package managed by apt.

    Read the article

  • Can't access internet with 32-bit browser(Chrome, FF, IE)! The 64-bit version of IE on Win 7 works f

    - by Sarveshwar
    I had installed Kaspersky AV 2010 two days ago. Everything was fine until I was not able to access the internet a few minutes back with the 32 bit browsers I have installed - Chrome, Firefox and the 32 bit IE. Then I see that utorrent is working fine!! So again I checked with the 64 bit IE and I could access the internet. I am currently using IE 64 bit to access superuser. Please help! I have uninstalled the KAV 2010. I thought that was the problem. Is this any virus or something? Also, whenever any browser (except IE 64), the screen freezes. Nothing except the browser works! And after the browser is closed, everything comes back to normal. Thanks!

    Read the article

  • Add a right click context menu in certain WIndows folders that will open a web browser URL?

    - by jasondavis
    In a Windows Explorer window where you browse files in Windows 7, I would like to add a new context menu that will allow me to open a file on my local Dev Server. So it would have to open a browser like Google Crome and the URL would have to be the file path but slightly different removing part of it and prepending my localhost URL. For example if the file I am right clicking on, the path for that file might be... E:\Server\htdocs\labs\php\testProject\test.php I would need a button to click in the context menu Open in Browser and it would open my Web Browser with a URL like this... http://localhost/labs/php/testProject/test.php I would love to be able to do this, any ideas or help would greatly be appreciated! To go one step further, would to be able to somehow make the context menu item only show up on File that are under this folder.... ``E:\Server\htdocs` but this is far less important.

    Read the article

  • Ubuntu 11.10 won't let me login; it kicks me back to login screen

    - by zlyfire
    I was just copying files from my external HDD to my .wine directory, when I noticed the place where the launchers are (Unity desktop) was getting fuzzy and holding onto graphics from the things in the location prior(i have it autohide when a window covers it). I assumed it was just RAM problem, so I canceled the copying, since it wasn't actually important. The glitch remained, and so did another; very slow response time. The mouse moved just fine, but windows were waiting about a minute after I hit the x button to close or even switch active window. Once again, I blamed RAM (only have 2 GBs) so I restarted. Usually, it autologs me into my account, since I'm the only user, but this time it presented me with the login screen. I thought it odd, but tried to log in. A black screen with some text pops up (assuming terminal screen) for half a second then kicks me back to the login screen. I tried the guest account and no luck. I went into terminal (alt+ctrl+f1) and logged in and it worked. I deleted .Xauthority, made new account, and even rebooted quite a few times, all to no avail. Anyone have an idea?

    Read the article

  • Can't access internet with 32-bit browser(Chrome, FF, IE)! The 64-bit version of IE on Win 7 works fine

    - by Sarveshwar
    I had installed Kaspersky AV 2010 two days ago. Everything was fine until I was not able to access the internet a few minutes back with the 32 bit browsers I have installed - Chrome, Firefox and the 32 bit IE. Then I see that utorrent is working fine!! So again I checked with the 64 bit IE and I could access the internet. I am currently using IE 64 bit to access superuser. Please help! I have uninstalled the KAV 2010. I thought that was the problem. Is this any virus or something? Also, whenever any browser (except IE 64), the screen freezes. Nothing except the browser works! And after the browser is closed, everything comes back to normal. Thanks!

    Read the article

  • Ubuntu Software Centre is gone! How can I get it back?

    - by Mochan
    Right. I am having MAJOR issues. (It would be much appreciated if you would solve them for me! Check my profile for open questions...) Following an answerer... who sorry to say... didn't give a great answer because it was just a graphical way of doing what I had already done - suggested I purge a library. Turns out that library controlled the Advanced Packaging Tool (apt), Ubuntu Software Centre and the repositories. Not a great tool to mess with. While trying to purge the library, it came up with 'Removing MyUnity.. Removing x... Removing x... Removing Ubuntu Software Centre... Removing X... Removing apt..." I quickly recognized and force shut-down my system. But I guess it was too late. So... well, plainly put - how do I get it back?!

    Read the article

  • Which browser is the most secure? (research and practically based)

    - by wag2639
    I was wondering which browser is the most secure today, Firefox, Internet Explorer, Chrome, or Safari on a Windows machine with the user running as a Power User/Administrator account. This is not a question about which browser is the best because its the most usable, but more of a question if asked for security, which browser is the most secure given an everyday user's experience (JavaScript, Flash, Ads, etc). Also, would the choice for most secure change if the user was running as a restricted user? To clarify, I'm looking for an answer that's based in research on potential and common exploits and how long it takes for critical problems to be patched.

    Read the article

  • Google présente Body Browser, un explorateur du corps humain basé sur WebGL et l'expérience utilisateur de Google Earth

    Google présente « Body Browser », un explorateur du corps humain basé sur WebGL Et inspiré de l'expérience utilisateur de Google Earth Voilà une nouvelle qui devrait ravir les chercheurs et étudiants en sciences médicales. Google travaille sur un équivalent de Google Earth, qui permet, via les navigateurs supportant WebGL, d'explorer, zoomer et détailler les différents compartiments, organes ou tissus du corps humain. L'application dispose d'une barre de recherche et d'un système de navigation très similaire à celui de Google Earth, ce qui devrait faciliter sa prise en main à la sortie du produit ...

    Read the article

  • Programmatically closing a dialog box - win32 [migrated]

    - by user1697579
    I'm working on an application to detect a pop-up dialog and then automatically dismiss it. I'm writing this as a C++/Win32 app. The dialog box is generated by IE 7 and I can detect the window, but several methods to get the OK button to "click" have failed. Doing searches for other people's solutions, sending these messages to the button handle seems to have worked in a lot of situations: PostMessage( handle, WM_LBUTTONDOWN, 0, 0 ); PostMessage( handle, WM_LBUTTONUP, 0, 0 ); PostMessage( handle, BM_SETSTATE, 1, 0 ); It has no effect on the button state in my tests though. I can send tab characters to the main window and see that the OK button gets focus, but then sending return characters does nothing. To learn more about this I used Spy++ to get information about the window hierarchy and what messages are delievered when I manually click the OK button. Looking at the message log and reading about WM_MOUSEACTIVATE seamed to offer a solution. The log info shows that 0002166C was the button window. So in my code I tried this: GetClassNameA( handle, str, str_size ); if( strcmp( str, "Internet Explorer_Server" ) != 0 ) return TRUE; // Not the window we're interested in. // Send a message to activate the button window and have it process a mouse click. PostMessage( handle, WM_MOUSEACTIVATE, (WPARAM) dialog_handle, MAKELPARAM( HTCLIENT, WM_LBUTTONDOWN ); Based on the window hierarchy and message log, I think the window with the class name "Internet Explorer_Server" is the button. Maybe I'm wrong, because it does seem like an odd class name for a button... Below is a link to the window hierarchy image, message log when I manually click the OK button. Last is the code that's executed on a 1 second timer ticket, looking for the window. Any insight and help is appreciated! Image of the window hierarchy, source, window messages, and test dialog source are available here: https://sites.google.com/site/matthewmillersmiscellanea/Home/

    Read the article

  • How is Javascript parsed/executed in a web browser exactly?

    - by ededed
    For example when I access web server likely Javascript will execute. From there on, how will the browser parse the Javascript, or "execute" the functions, the memory used, etc. How will the browser "handle" all of that? Does it act like a compilation lexer in that it passes line by line and generates object code, or does it use the DOM, and other specifications to handle memory, etc. Also, in terms of updating the page, and alterior concurrent executions as well, such as Flash, HTML, Java, etc. Point be simplified, how does the browser handle the scripts, the memory, and the logic on page from a javascript file?

    Read the article

  • Using listpreference and getting the key works but no ok button...

    - by Allan
    I'm using listpreference in my android app and getting my key values and all is well and works good (now that you guys have helped me) BUT - when my listpreference menus popup, they only contain a cancel button. Let's say the user is choosing between red, blue, and green. When the listpreference dialog first pops-up, the dialog only shows a cancel button. Because of that, the dialog disappears as soon as the user selects their choice. I would like it so that when the user chooses their setting, they see the radio button get highlighted and then they go ahead and click the ok button...but I don't have an ok button and can't figure out why. Any help would be awesome...al

    Read the article

  • How to change *.ico for button in running mode?

    - by karikari
    I am currently doing visual c++ for an Internet Explorer toolbar button. I have a registration script file (*.rgs) that defines or maybe register the features of my button inside the Windows registry. My objective is, I want my button to change its *.ico image, based on certain conditions process from my *.cpp file. My problem is, I don't understand, how can I somehow change the *.ico file for my button in real time, during my application is running? For example, IF f = 1, ico_file = green.ico; ELSE ico_file = red.ico; Any idea, that you guys can point to me, how can I change the *.ico file for my Internet Explorer toolbar button while the IE is running.

    Read the article

  • How to add jQuery UI Button icons to input buttons?

    - by jrummell
    Is it possible to use jQuery UI Button icons with <input type="submit"> elements? The documentation example uses <button> elements, but it does not explicitly say whether or not icons work with input buttons. I'd like to add icons to ASP.NET Button controls which render as <input type="submit">. This is what I've tried: $("input.add").button({ icons: { primary: "ui-icon-circle-plus" } }); The button is styled correctly except for the missing icon. Am I missing something?

    Read the article

  • How can keep track of the index path of a button in a tableview cell?

    - by Jake
    I have a table view where each cell has a button accessory view. The table is managed by a fatchedresults controller and is frequently reordered. I want to be able to press a button and be able to obtain the index path of the pressed button's tableviewcell. I've been trying to get this working for days by storing the row of the button in it's tag, but when the table get's reordered the row becomes incorrect and I keep failing at reordering the tags correctly when a change is made. Any new ideas on how to keep track of the button's cell's index path? Thanks so much for any help.

    Read the article

  • How to add Image On 'more' Button of UITabBarController in iOS 6?

    - by iPatel
    I know That How to add UITabBarController and how it used, I already done it. My Problem is only that I am no able to add image on 'more' button of UITabBarController. I know There are may Question That Similar to my Question but no one can help me. After googling I found that we can't add images on 'More' button in UITabBarController Because more button is autometically displayed by UITabBarController when UITabBarItem more Then 5. I also find that how to change SELECTION COLOR AND TITLE OF 'more' Button But I can not find abut 'more' button Image. So may be i need to Custom UITabBarController so, I also searching for any Custom UITabBarController but also I can not find it. Please help me on this Issue.

    Read the article

  • How can I reset my UI when the user presses a button?

    - by Fasttracks
    I have 1 scrollview that contain 18 buttons. 1) when a user taps on any button, a button is added to a second UIScrollView. 2) Then, when a user taps on that button on second scrollview the button is removed from second scrollview. both uiscrollviews contain a list of their buttons. Afree both of these steps, I have to reload my scrollview. Can I do the same task by adding observer, so that it will automatically reload when any action done on button, and if yes then how?

    Read the article

  • Conway's Game of Life - C++ and Qt

    - by Jeff Bridge
    I've done all of the layouts and have most of the code written even. But, I'm stuck in two places. 1) I'm not quite sure how to set up the timer. Am I using it correctly in the gridwindow class? And, am I used the timer functions/signals/slots correctly with the other gridwindow functions. 2) In GridWindow's timerFired() function, I'm having trouble checking/creating the vector-vectors. I wrote out in the comments in that function exactly what I am trying to do. Any help would be much appreciated. main.cpp // Main file for running the grid window application. #include <QApplication> #include "gridwindow.h" //#include "timerwindow.h" #include <stdexcept> #include <string> #include <fstream> #include <sstream> #include <iostream> void Welcome(); // Welcome Function - Prints upon running program; outputs program name, student name/id, class section. void Rules(); // Rules Function: Prints the rules for Conway's Game of Life. using namespace std; // A simple main method to create the window class and then pop it up on the screen. int main(int argc, char *argv[]) { Welcome(); // Calls Welcome function to print student/assignment info. Rules(); // Prints Conway's Game Rules. QApplication app(argc, argv); // Creates the overall windowed application. int rows = 25, cols = 35; //The number of rows & columns in the game grid. GridWindow widget(NULL,rows,cols); // Creates the actual window (for the grid). widget.show(); // Shows the window on the screen. return app.exec(); // Goes into visual loop; starts executing GUI. } // Welcome Function: Prints my name/id, my class number, the assignment, and the program name. void Welcome() { cout << endl; cout << "-------------------------------------------------------------------------------------------------" << endl; cout << "Name/ID - Gabe Audick #7681539807" << endl; cout << "Class/Assignment - CSCI-102 Disccusion 29915: Homework Assignment #4" << endl; cout << "-------------------------------------------------------------------------------------------------" << endl << endl; } // Rules Function: Prints the rules for Conway's Game of Life. void Rules() { cout << "Welcome to Conway's Game of Life." << endl; cout << "Game Rules:" << endl; cout << "\t 1) Any living cell with fewer than two living neighbours dies, as if caused by underpopulation." << endl; cout << "\t 2) Any live cell with more than three live neighbours dies, as if by overcrowding." << endl; cout << "\t 3) Any live cell with two or three live neighbours lives on to the next generation." << endl; cout << "\t 4) Any dead cell with exactly three live neighbours becomes a live cell." << endl << endl; cout << "Enjoy." << endl << endl; } gridcell.h // A header file for a class representing a single cell in a grid of cells. #ifndef GRIDCELL_H_ #define GRIDCELL_H_ #include <QPalette> #include <QColor> #include <QPushButton> #include <Qt> #include <QWidget> #include <QFrame> #include <QHBoxLayout> #include <iostream> // An enum representing the two different states a cell can have. enum CellType { DEAD, // DEAD = Dead Cell. --> Color = White. LIVE // LIVE = Living Cell. ---> Color = White. }; /* Class: GridCell. A class representing a single cell in a grid. Each cell is implemented as a QT QFrame that contains a single QPushButton. The button is sized so that it takes up the entire frame. Each cell also keeps track of what type of cell it is based on the CellType enum. */ class GridCell : public QFrame { Q_OBJECT // Macro allowing us to have signals & slots on this object. private: QPushButton* button; // The button inside the cell that gives its clickability. CellType type; // The type of cell (DEAD or LIVE.) public slots: void handleClick(); // Callback for handling a click on the current cell. void setType(CellType type); // Cell type mutator. Calls the "redrawCell" function. signals: void typeChanged(CellType type); // Signal to notify listeners when the cell type has changed. public: GridCell(QWidget *parent = NULL); // Constructor for creating a cell. Takes parent widget or default parent to NULL. virtual ~GridCell(); // Destructor. void redrawCell(); // Redraws cell: Sets new type/color. CellType getType() const; //Simple getter for the cell type. private: Qt::GlobalColor getColorForCellType(); // Helper method. Returns color that cell should be based from its value. }; #endif gridcell.cpp #include <iostream> #include "gridcell.h" #include "utility.h" using namespace std; // Constructor: Creates a grid cell. GridCell::GridCell(QWidget *parent) : QFrame(parent) { this->type = DEAD; // Default: Cell is DEAD (white). setFrameStyle(QFrame::Box); // Set the frame style. This is what gives each box its black border. this->button = new QPushButton(this); //Creates button that fills entirety of each grid cell. this->button->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); // Expands button to fill space. this->button->setMinimumSize(19,19); //width,height // Min height and width of button. QHBoxLayout *layout = new QHBoxLayout(); //Creates a simple layout to hold our button and add the button to it. layout->addWidget(this->button); setLayout(layout); layout->setStretchFactor(this->button,1); // Lets the buttons expand all the way to the edges of the current frame with no space leftover layout->setContentsMargins(0,0,0,0); layout->setSpacing(0); connect(this->button,SIGNAL(clicked()),this,SLOT(handleClick())); // Connects clicked signal with handleClick slot. redrawCell(); // Calls function to redraw (set new type for) the cell. } // Basic destructor. GridCell::~GridCell() { delete this->button; } // Accessor for the cell type. CellType GridCell::getType() const { return(this->type); } // Mutator for the cell type. Also has the side effect of causing the cell to be redrawn on the GUI. void GridCell::setType(CellType type) { this->type = type; redrawCell(); } // Handler slot for button clicks. This method is called whenever the user clicks on this cell in the grid. void GridCell::handleClick() { // When clicked on... if(this->type == DEAD) // If type is DEAD (white), change to LIVE (black). type = LIVE; else type = DEAD; // If type is LIVE (black), change to DEAD (white). setType(type); // Sets new type (color). setType Calls redrawCell() to recolor. } // Method to check cell type and return the color of that type. Qt::GlobalColor GridCell::getColorForCellType() { switch(this->type) { default: case DEAD: return Qt::white; case LIVE: return Qt::black; } } // Helper method. Forces current cell to be redrawn on the GUI. Called whenever the setType method is invoked. void GridCell::redrawCell() { Qt::GlobalColor gc = getColorForCellType(); //Find out what color this cell should be. this->button->setPalette(QPalette(gc,gc)); //Force the button in the cell to be the proper color. this->button->setAutoFillBackground(true); this->button->setFlat(true); //Force QT to NOT draw the borders on the button } gridwindow.h // A header file for a QT window that holds a grid of cells. #ifndef GRIDWINDOW_H_ #define GRIDWINDOW_H_ #include <vector> #include <QWidget> #include <QTimer> #include <QGridLayout> #include <QLabel> #include <QApplication> #include "gridcell.h" /* class GridWindow: This is the class representing the whole window that comes up when this program runs. It contains a header section with a title, a middle section of MxN cells and a bottom section with buttons. */ class GridWindow : public QWidget { Q_OBJECT // Macro to allow this object to have signals & slots. private: std::vector<std::vector<GridCell*> > cells; // A 2D vector containing pointers to all the cells in the grid. QLabel *title; // A pointer to the Title text on the window. QTimer *timer; // Creates timer object. public slots: void handleClear(); // Handler function for clicking the Clear button. void handleStart(); // Handler function for clicking the Start button. void handlePause(); // Handler function for clicking the Pause button. void timerFired(); // Method called whenever timer fires. public: GridWindow(QWidget *parent = NULL,int rows=3,int cols=3); // Constructor. virtual ~GridWindow(); // Destructor. std::vector<std::vector<GridCell*> >& getCells(); // Accessor for the array of grid cells. private: QHBoxLayout* setupHeader(); // Helper function to construct the GUI header. QGridLayout* setupGrid(int rows,int cols); // Helper function to constructor the GUI's grid. QHBoxLayout* setupButtonRow(); // Helper function to setup the row of buttons at the bottom. }; #endif gridwindow.cpp #include <iostream> #include "gridwindow.h" using namespace std; // Constructor for window. It constructs the three portions of the GUI and lays them out vertically. GridWindow::GridWindow(QWidget *parent,int rows,int cols) : QWidget(parent) { QHBoxLayout *header = setupHeader(); // Setup the title at the top. QGridLayout *grid = setupGrid(rows,cols); // Setup the grid of colored cells in the middle. QHBoxLayout *buttonRow = setupButtonRow(); // Setup the row of buttons across the bottom. QVBoxLayout *layout = new QVBoxLayout(); // Puts everything together. layout->addLayout(header); layout->addLayout(grid); layout->addLayout(buttonRow); setLayout(layout); } // Destructor. GridWindow::~GridWindow() { delete title; } // Builds header section of the GUI. QHBoxLayout* GridWindow::setupHeader() { QHBoxLayout *header = new QHBoxLayout(); // Creates horizontal box. header->setAlignment(Qt::AlignHCenter); this->title = new QLabel("CONWAY'S GAME OF LIFE",this); // Creates big, bold, centered label (title): "Conway's Game of Life." this->title->setAlignment(Qt::AlignHCenter); this->title->setFont(QFont("Arial", 32, QFont::Bold)); header->addWidget(this->title); // Adds widget to layout. return header; // Returns header to grid window. } // Builds the grid of cells. This method populates the grid's 2D array of GridCells with MxN cells. QGridLayout* GridWindow::setupGrid(int rows,int cols) { QGridLayout *grid = new QGridLayout(); // Creates grid layout. grid->setHorizontalSpacing(0); // No empty spaces. Cells should be contiguous. grid->setVerticalSpacing(0); grid->setSpacing(0); grid->setAlignment(Qt::AlignHCenter); for(int i=0; i < rows; i++) //Each row is a vector of grid cells. { std::vector<GridCell*> row; // Creates new vector for current row. cells.push_back(row); for(int j=0; j < cols; j++) { GridCell *cell = new GridCell(); // Creates and adds new cell to row. cells.at(i).push_back(cell); grid->addWidget(cell,i,j); // Adds to cell to grid layout. Column expands vertically. grid->setColumnStretch(j,1); } grid->setRowStretch(i,1); // Sets row expansion horizontally. } return grid; // Returns grid. } // Builds footer section of the GUI. QHBoxLayout* GridWindow::setupButtonRow() { QHBoxLayout *buttonRow = new QHBoxLayout(); // Creates horizontal box for buttons. buttonRow->setAlignment(Qt::AlignHCenter); // Clear Button - Clears cell; sets them all to DEAD/white. QPushButton *clearButton = new QPushButton("CLEAR"); clearButton->setFixedSize(100,25); connect(clearButton, SIGNAL(clicked()), this, SLOT(handleClear())); buttonRow->addWidget(clearButton); // Start Button - Starts game when user clicks. Or, resumes game after being paused. QPushButton *startButton = new QPushButton("START/RESUME"); startButton->setFixedSize(100,25); connect(startButton, SIGNAL(clicked()), this, SLOT(handleStart())); buttonRow->addWidget(startButton); // Pause Button - Pauses simulation of game. QPushButton *pauseButton = new QPushButton("PAUSE"); pauseButton->setFixedSize(100,25); connect(pauseButton, SIGNAL(clicked()), this, SLOT(handlePause())); buttonRow->addWidget(pauseButton); // Quit Button - Exits program. QPushButton *quitButton = new QPushButton("EXIT"); quitButton->setFixedSize(100,25); connect(quitButton, SIGNAL(clicked()), qApp, SLOT(quit())); buttonRow->addWidget(quitButton); return buttonRow; // Returns bottom of layout. } /* SLOT method for handling clicks on the "clear" button. Receives "clicked" signals on the "Clear" button and sets all cells to DEAD. */ void GridWindow::handleClear() { for(unsigned int row=0; row < cells.size(); row++) // Loops through current rows' cells. { for(unsigned int col=0; col < cells[row].size(); col++) { GridCell *cell = cells[row][col]; // Grab the current cell & set its value to dead. cell->setType(DEAD); } } } /* SLOT method for handling clicks on the "start" button. Receives "clicked" signals on the "start" button and begins game simulation. */ void GridWindow::handleStart() { this->timer = new QTimer(this); // Creates new timer. connect(this->timer, SIGNAL(timeout()), this, SLOT(timerFired())); // Connect "timerFired" method class to the "timeout" signal fired by the timer. this->timer->start(500); // Timer to fire every 500 milliseconds. } /* SLOT method for handling clicks on the "pause" button. Receives "clicked" signals on the "pause" button and stops the game simulation. */ void GridWindow::handlePause() { this->timer->stop(); // Stops the timer. delete this->timer; // Deletes timer. } // Accessor method - Gets the 2D vector of grid cells. std::vector<std::vector<GridCell*> >& GridWindow::getCells() { return this->cells; } void GridWindow::timerFired() { // I'm not sure how to write this code. // I want to take the original vector-vector, and also make a new, empty vector-vector of the same size. // I would then go through the code below with the original vector, and apply the rules to the new vector-vector. // Finally, I would make the new vector-vecotr the original vector-vector. (That would be one step in the simulation.) cout << cells[1][2]; /* for (unsigned int m = 0; m < original.size(); m++) { for (unsigned int n = 0; n < original.at(m).size(); n++) { unsigned int neighbors = 0; //Begin counting number of neighbors. if (original[m-1][n-1].getType() == LIVE) // If a cell next to [i][j] is LIVE, add one to the neighbor count. neighbors += 1; if (original[m-1][n].getType() == LIVE) neighbors += 1; if (original[m-1][n+1].getType() == LIVE) neighbors += 1; if (original[m][n-1].getType() == LIVE) neighbors += 1; if (original[m][n+1].getType() == LIVE) neighbors += 1; if (original[m+1][n-1].getType() == LIVE) neighbors += 1; if (original[m+1][n].getType() == LIVE) neighbors += 1; if (original[m+1][n+1].getType() == LIVE) neighbors += 1; if (original[m][n].getType() == LIVE && neighbors < 2) // Apply game rules to cells: Create new, updated grid with the roundtwo vector. roundtwo[m][n].setType(LIVE); else if (original[m][n].getType() == LIVE && neighbors > 3) roundtwo[m][n].setType(DEAD); else if (original[m][n].getType() == LIVE && (neighbors == 2 || neighbors == 3)) roundtwo[m][n].setType(LIVE); else if (original[m][n].getType() == DEAD && neighbors == 3) roundtwo[m][n].setType(LIVE); } }*/ }

    Read the article

< Previous Page | 214 215 216 217 218 219 220 221 222 223 224 225  | Next Page >